#include #include #include #include #define MAXDUZ 100 /* Prototipovi funkcija */ int uzmibroj( char s[], int lim, FILE * ul ); int main(int argc,char **argv) { char broj[MAXDUZ],maksimum[MAXDUZ]; int brcifara, maxbrc = 0; FILE *ul; if(argc<2) { fprintf(stderr,"Nedovojan broj argumenata na ulazu!!!\n"); exit(1); } /* Otvaranje datoteke za citanje */ if(!(ul=fopen(argv[1],"r"))) { fprintf(stderr,"Ulazna datoteka ne postoji\n"); exit(2); } /* Dok ulazna datoteka ima linija vrsi se citanje brojeva*/ while( brcifara = uzmibroj(broj,MAXDUZ,ul)) { /* Ukoliko novi broj ima vise cifara od postojeceg maksimuma */ if(brcifara > maxbrc) { /* Novi broj postaje maksimum */ maxbrc = brcifara; strcpy(maksimum,broj); } /* Ako imaju isti broj cifara a novi broj leksikografski veci od postojeceg maksimuma onda on postaje maksimum */ else if ( (maxbrc == brcifara) && strcmp(broj,maksimum) > 0) { maxbrc = brcifara; strcpy(maksimum,broj); } } printf("Maksimalni broj je : %s\n",maksimum); return 0; } int uzmibroj( char s[], int lim,FILE *ul ) { int c, i=0; while( --lim > 0 && (c = fgetc(ul)) != EOF && ( c != '\n' ) && isdigit(c) ) s[i++] = c; s[i] = '\0'; return i; }