Advertisement
aed1oN

T12Z4

Feb 15th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct Predmet {
  5.     int id;
  6.     char naziv[30];
  7. };
  8.  
  9. void unesi(char *string, int vel) {
  10.     char znak = getchar();
  11.     int i = 0;
  12.     if (znak == '\n') znak = getchar();
  13.     while (i < vel - 1 && znak != '\n') {
  14.         string[i] = znak;
  15.         i++;
  16.         znak = getchar();
  17.     }
  18.     string[i] = '\0';
  19. }
  20.  
  21. int ucitaj(struct Predmet *predmeti, int limit) {
  22.     int i = 0, j = 0;
  23.     char c = 'a';
  24.     FILE *ulaz;
  25.     ulaz = fopen("predmeti.txt", "r");
  26.     if (!ulaz) {
  27.         printf("Greska pri otvaranju datoteke za citanje.\n");
  28.         return 0;
  29.     }
  30.     while (i < limit && fscanf(ulaz, "%d ", &predmeti[i].id) == 1) {
  31.         do {
  32.             c = fgetc(ulaz);
  33.             predmeti[i].naziv[j] = c;
  34.             j++;
  35.         } while (j < 30 && c != 10);  
  36.         predmeti[i].naziv[j - 1] = '\0';
  37.         j = 0;
  38.         i++;
  39.     }
  40.     fclose(ulaz);
  41.     return i;
  42. }
  43.  
  44. int main() {
  45.     int i, isti = 1, idUnos, brIndexa, predmet, ocjena;
  46.     int izasli = 0, polozili = 0, suma = 0, velicina;
  47.     char unos[40];
  48.     double prosjek, prolaznost;
  49.     FILE *ulaz;
  50.     struct Predmet predmeti[10];
  51.     velicina = ucitaj(predmeti, 10);
  52.     // for (i = 0; i < 5; i++)
  53.     //  printf("%d. %s\n", predmeti[i].id, predmeti[i].naziv);
  54.     do {
  55.         printf("Unesite predmet: ");
  56.         unesi(unos, 40);
  57.         for (i = 0; i < velicina; i++) {
  58.             if (!strcmp(unos, predmeti[i].naziv)) {
  59.                 idUnos = predmeti[i].id;
  60.                 isti = 0;
  61.                 break;
  62.             }
  63.         }
  64.         if (i == velicina)
  65.             printf("Nepostojeci predmet!\n");
  66.     } while (isti);
  67.     ulaz = fopen("ispiti.txt", "r");
  68.     if (ulaz == NULL) {
  69.         printf("Pogreska kod otvaranja datoteke!");
  70.         return 1;
  71.     }
  72.     while (fscanf(ulaz, "%d %d %d", &brIndexa, &predmet, &ocjena) == 3) {
  73.         if (idUnos == predmet) {
  74.             suma += ocjena;
  75.             izasli++;  
  76.             if (ocjena >= 6)
  77.                 polozili++;
  78.         }
  79.     }
  80.     fclose(ulaz);
  81.     if (!izasli) {
  82.         printf("Zalimo, ali ne postoje podaci o predmetu %s!", unos);
  83.         return 0;
  84.     }
  85.     prosjek = (float)suma / izasli;
  86.     prolaznost = ((float)polozili / izasli) * 100;
  87.     printf("Prosjecna ocjena: %.2f", prosjek);
  88.     printf("\nProlaznost: %g%%", prolaznost);
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement