Advertisement
FRiTZZY

OR_T13_Z2

Feb 7th, 2015
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. /* OR_Tutorijal_13 Zadatak_2_1 */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. struct Student
  6. {
  7.     char prezime[20];
  8.     char ime[15];
  9.     int broj_bodova1;
  10.     int broj_bodova2;
  11. };
  12. int main()
  13. {
  14.     struct Student studenti[300], temp;
  15.     struct Student polozili[300];
  16.     FILE *ulaz, *izlaz;
  17.     int i, j, k;
  18.  /* Otvaranje i provjera ulazne datoteke (usmeni.txt) */
  19.     ulaz = fopen("ispit.txt", "r");
  20.     if(ulaz == NULL)
  21.     {
  22.         printf("Greska pri otvaranju datoteke ispit.txt \n");
  23.         return -1;
  24.     }
  25.  /* Unos podataka iz ulazne datoteke (ispit.txt) */
  26.     i = 0;
  27.     while(fscanf(ulaz, "%20s%15s%2d%2d\n", studenti[i].prezime, studenti[i].ime,
  28.           &studenti[i].broj_bodova1, &studenti[i].broj_bodova2) == 4 && i < 300)
  29.     i++;
  30.        
  31.     int brojac=0;
  32.  /* Izdvajanje studenata koji su polozili oba parcijalna ispita */
  33.     for(j = 0; j < i ; j++)
  34.     if(studenti[j].broj_bodova1>=10 && studenti[j].broj_bodova2>=10)
  35.        polozili[brojac++]=studenti[j];
  36.  /* Sortiranje studenata (koji su polozili oba parcijalna ispita) prema ukupnom broju bodova */  
  37.     for(j = 0; j < i - 1; j++)
  38.         for(k = j + 1; k < i; k++)
  39.           if(studenti[k].broj_bodova1+studenti[k].broj_bodova2 > polozili[j].broj_bodova1+polozili[j].broj_bodova2)
  40.             {
  41.                 temp = polozili[j];
  42.                 polozili[j] = polozili[k];
  43.                 polozili[k] = temp;
  44.             }
  45.  /* Otvaranje i provjera izlazne datoteke (usmeni.txt) */
  46.     izlaz = fopen("usmeni.txt", "w");
  47.     if(izlaz == NULL)
  48.     {
  49.         fclose(ulaz); /* Ako postoji greska sa drugom datotekom, prekini program i zatvori prvu datoteku */
  50.         printf("Greska pri otvaranju datoteke usmeni.txt \n");
  51.         return -1;
  52.     }
  53.            
  54.  /* Ispis rezultata u datoteku usmeni.txt */
  55.     for(j = 0; j < brojac; j++)
  56.         fprintf(izlaz, "%-20s%-15s%2d\n", studenti[j].prezime, studenti[j].ime, studenti[j].broj_bodova1+studenti[j].broj_bodova2);
  57.     fclose(ulaz);
  58.     fclose(izlaz);
  59.     printf("Izlazna datoteka 'usmeni.txt' je kreirana. \n");
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement