Advertisement
Solomid

Untitled

Jan 13th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void unesi(char niz[], int velicina){
  5.     char znak = getchar();
  6.     if (znak == '\n') znak = getchar();
  7.     int i = 0;
  8.     while(i < velicina - 1 && znak != '\n') {
  9.         niz[i] = znak;
  10.         i++;
  11.         znak = getchar();
  12.     }
  13.     niz[i]='\0';
  14. }
  15.  
  16. struct Student {
  17.     int brindexa,predmet,ocjena;
  18. };
  19.  
  20. int main(){
  21.    
  22.     FILE* ulaz;
  23.     struct Student s[100];
  24.     int i = 0, k = 0, error = 0;
  25.     int brojac = 0, br_polozenih = 0, br_predmeta = 6, unos = 1;
  26.     double suma = 0;
  27.     int pr;
  28.     char predmet[30], predmeti[30], *pom1, *pom2, *duzina1, *duzina2;
  29.     ulaz = fopen("ispiti.txt","r");
  30.     if(!ulaz) {
  31.         printf("Pogreska kod otvaranja datoteke 'ispiti.txt'!\n\n");
  32.         return 1;
  33.     }
  34.     while(fscanf(ulaz, "%d %d %d",&s[i].brindexa,&s[i].predmet,&s[i].ocjena) != EOF)
  35.         i++;
  36.     fclose(ulaz);
  37.     ulaz = fopen("predmeti.txt","r");
  38.     if(!ulaz) {
  39.         printf("Pogreska kod otvaranja datoteke 'predmeti.txt'!\n\n");
  40.         return 1;
  41.     }
  42.     while(fscanf(ulaz,"%d %[^\n]", &pr, predmeti) != EOF) {
  43.         if(unos) {
  44.             printf("Unesite predmet: ");
  45.             unesi(predmet,30);
  46.             unos = 0;
  47.         }
  48.         pom1 = duzina1 = predmet;
  49.         pom2 = duzina2 = predmeti;
  50.         while(*duzina1++);
  51.         while(*duzina2++);
  52.         if(duzina1-pom1 != duzina2-pom2) {
  53.             if(pr == br_predmeta) {
  54.                 printf("Nepostojeci predmet!\n");
  55.                 fseek(ulaz, 0, SEEK_SET);
  56.                 unos = 1;
  57.             }
  58.             continue;
  59.         } else {
  60.             while(*pom1 != '\0' && *pom2 != '\0') {
  61.                 if(*pom1 != *pom2) {
  62.                     error = 1;
  63.                     break;
  64.                 } else {
  65.                     pom1++;
  66.                     pom2++;
  67.                 }
  68.             }
  69.             if(error) {
  70.                 if(pr == br_predmeta) {
  71.                     printf("Nepostojeci predmet!\n");
  72.                     fseek(ulaz, 0, SEEK_SET);
  73.                     unos = 1;
  74.                 }
  75.                 error = 0;
  76.                 continue;
  77.             } else {
  78.                 for(k = 0; k < i; k++) {
  79.                     if(s[k].predmet == pr) {
  80.                         suma += s[k].ocjena;
  81.                         brojac++;
  82.                         if(s[k].ocjena > 5)
  83.                             br_polozenih++;
  84.                     }
  85.                 }
  86.                 if(!brojac) {
  87.                     printf("Zalimo, ali ne postoje podaci o predmetu %s!",predmet);
  88.                     return 1;
  89.                 }
  90.                 printf("Prosjecna ocjena: %.2lf\n",suma/brojac);
  91.                 printf("Prolaznost: %g%%",(double)br_polozenih/brojac*100);
  92.                 return 0;
  93.             }
  94.         }
  95.     }
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement