Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- typedef struct
- {
- char ime[51];
- char kolegij[101];
- int ocjena;
- } ispit;
- typedef struct
- {
- int broj;
- int uk_ocjena;
- char kolegij[101];
- } kolegij;
- int indexKolegija(const char *ime, kolegij *niz, int *n)
- {
- int i;
- for (i = 0; i < *n; ++i)
- if (!strcmp(ime, niz[i].kolegij))
- return i;
- strcpy(niz[i].kolegij, ime);
- niz[i].broj = 0;
- niz[i].uk_ocjena = 0;
- *n = i+1;
- return i;
- }
- int main()
- {
- FILE *in = fopen("ispiti.dat", "rb");
- FILE *out = fopen("kolegiji.txt", "wt");
- kolegij niz[100];
- ispit I;
- int i, j, n = 0;
- while (fread(&I, 1, sizeof(ispit), in))
- {
- i = indexKolegija(I.kolegij, niz, &n);
- niz[i].broj++;
- niz[i].uk_ocjena += I.ocjena;
- }
- for (i = 0; i < n; ++i)
- for (j = i+1; j < n; ++j)
- if ( niz[i].uk_ocjena*niz[j].broj <
- niz[j].uk_ocjena*niz[i].broj )
- {
- kolegij tmp;
- tmp = niz[i]; niz[i] = niz[j]; niz[j] = tmp;
- }
- for (i = 0; i < n; ++i)
- fprintf(out, "%s: %.3lf\n", niz[i].kolegij,
- (double)niz[i].uk_ocjena/niz[i].broj);
- fclose(in);
- fclose(out);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement