Advertisement
elica123

Untitled

Aug 5th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. typedef struct
  5. {
  6. char ime[51];
  7. char kolegij[101];
  8. int ocjena;
  9. } ispit;
  10.  
  11. typedef struct
  12. {
  13. int broj;
  14. int uk_ocjena;
  15. char kolegij[101];
  16. } kolegij;
  17.  
  18. int indexKolegija(const char *ime, kolegij *niz, int *n)
  19. {
  20. int i;
  21. for (i = 0; i < *n; ++i)
  22. if (!strcmp(ime, niz[i].kolegij))
  23. return i;
  24. strcpy(niz[i].kolegij, ime);
  25. niz[i].broj = 0;
  26. niz[i].uk_ocjena = 0;
  27. *n = i+1;
  28. return i;
  29. }
  30.  
  31. int main()
  32. {
  33. FILE *in = fopen("ispiti.dat", "rb");
  34. FILE *out = fopen("kolegiji.txt", "wt");
  35. kolegij niz[100];
  36. ispit I;
  37. int i, j, n = 0;
  38.  
  39. while (fread(&I, 1, sizeof(ispit), in))
  40. {
  41. i = indexKolegija(I.kolegij, niz, &n);
  42. niz[i].broj++;
  43. niz[i].uk_ocjena += I.ocjena;
  44. }
  45.  
  46. for (i = 0; i < n; ++i)
  47. for (j = i+1; j < n; ++j)
  48. if ( niz[i].uk_ocjena*niz[j].broj <
  49. niz[j].uk_ocjena*niz[i].broj )
  50. {
  51. kolegij tmp;
  52. tmp = niz[i]; niz[i] = niz[j]; niz[j] = tmp;
  53. }
  54.  
  55. for (i = 0; i < n; ++i)
  56. fprintf(out, "%s: %.3lf\n", niz[i].kolegij,
  57. (double)niz[i].uk_ocjena/niz[i].broj);
  58.  
  59. fclose(in);
  60. fclose(out);
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement