Greska

Embed Size (px)

DESCRIPTION

error

Citation preview

#include #include /*Funkcija za unos stringa*/void unos (char* string, int velicina){ int i = 0; char c; do { c = getchar(); string[i] = c; i++; } while ( c = '\n' && i < velicina); string[i -1] = '\0';}int main(){ FILE *ulaz1, *ulaz2; char znak, ime_studenti[50], ime_predmeti[50], trazeni_predmet[50], premdet_iz_datoteke[50], c; int suma = 0, brojac = 0, broj_polozenih = 0, prolaznost, broj_indexa, predmet, ocjena, n = 0, broj_predmeta; float prosjek; printf("Unesite ime datoteke sa studentima: "); scanf("%s", ime_studenti); ulaz1 = fopen( ime_studenti, "r"); if ( ulaz1 == NULL ) { printf("Greska prilikom otvaranja datoteke '%s'! \n", ime_studenti); exit(1); } printf("Unesite ime datoteke sa predmetima: "); scanf("%s", ime_predmeti); ulaz2 = fopen( ime_predmeti, "r"); if ( ulaz2 == NULL ) { printf("Greska prilikom otvaranja datoteke '%s'! \n", ime_predmeti); exit(1); } /*Unosimo broj predmeta za koji trazimo prosjek i prolaznost*/ printf("Unesite predmet: "); unos(trazeni_predmet, 50); while ( !feof(ulaz2) ) // sve dok nismo dosli do kraja { fscanf(ulaz2, "%d ", &broj_predmeta); //razmak poslije %d mora biti kako ne bi uracunao i razmak u ime predmeta int i = 0; do { c = fgetc(ulaz2); predmet_iz_datoteke[i] = c; i++; } while ( c != '\n' ); predmet_iz_datoteke[i - 1] = '\0'; /*Poredimo imena predmeta i ako su jednaka uzimamo njegov redni broj*/ if ( srcmp(trazeni_predmet, predmet_iz_datoteke) == 0 ) { n = broj_predmeta; } } if ( n == 0 ) { printf("Unijeli ste nepostojeci predmet!"); } fclose(ulaz2); while ( fscanf (ulaz1, "%d %d %d\n", &broj_indexa, &predmet, &ocjena) == 3 ) { /*sad radimo sa snimljenim vrijednostima*/ if ( predmet == broj_predmeta ) { suma += ocjena; brojac++; if ( ocjena > 5 ) { broj_polozenih++; } } } /*Racunamo prosjek i prolaznost zadatog predmeta*/ prosjek = (float)suma / brojac; prolaznost = ((float)broj_polozenih / brojac) * 100; printf("Prosjecna ocjena: %.2f\n", prosjek); printf("Prolaznost: %d%%\n", prolaznost); fclose(ulaz1); return 0;}