#include #include #include /* Definicija strukture za cuvanje podataka o jednom studentu */ typedef struct _student { char imekor[15]; int p_1; int p_2; } student; /* Studenti se smestaju u niz koji nema vi\v{s}e od 1024 elemenata. */ student studenti[1024]; int main(int argc, char* argv[] ) { FILE* datoteka; int i, minimum=0; double prosekmax=0.0, prosekmin=10.0, prosek; char resenje[15]; /* Proveravamo prisutnost argumenata komandne linije */ if (argc!=3) { printf("Upotreba %s : ime_datoteke -min(-max)\n",argv[0]); return -1; } /* Otvaramo datoteku */ if ((datoteka = fopen(argv[1], "r")) == NULL) { printf("Greska prilikom otvaranja datoteke %s\n",argv[1]); return -1; } /* Provera prosledjene opcije */ if (strcmp(argv[2], "-min") == 0) minimum = 1; else if (strcmp(argv[2], "-max") != 0) { fprintf(stderr, "Greska: Opcija mora biti -min ili -max\n"); exit(EXIT_FAILURE); } /* Ucitavamo podatke o studentima */ for (i = 0; fscanf(datoteka, "%s",studenti[i].imekor) !=EOF; i++) { fscanf(datoteka, "%d", &studenti[i].p_1); fscanf(datoteka, "%d", &studenti[i].p_2); prosek= (studenti[i].p_1 + studenti[i].p_2 +0.0)/2; if (minimum) { if (prosekprosekmax) { prosekmax=prosek; strcpy(resenje,studenti[i].imekor); } } } /* Ispisujemo poene za svakog studenta kojeg korisnik trazi */ printf("%s",resenje ); return 0; }