Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* OR_Tutorijal_13 Zadatak_2_1 */
- #include <stdio.h>
- #include <stdlib.h>
- struct Student
- {
- char prezime[20];
- char ime[15];
- int broj_bodova1;
- int broj_bodova2;
- };
- int main()
- {
- struct Student studenti[300], temp;
- struct Student polozili[300];
- FILE *ulaz, *izlaz;
- int i, j, k;
- /* Otvaranje i provjera ulazne datoteke (usmeni.txt) */
- ulaz = fopen("ispit.txt", "r");
- if(ulaz == NULL)
- {
- printf("Greska pri otvaranju datoteke ispit.txt \n");
- return -1;
- }
- /* Unos podataka iz ulazne datoteke (ispit.txt) */
- i = 0;
- while(fscanf(ulaz, "%20s%15s%2d%2d\n", studenti[i].prezime, studenti[i].ime,
- &studenti[i].broj_bodova1, &studenti[i].broj_bodova2) == 4 && i < 300)
- i++;
- int brojac=0;
- /* Izdvajanje studenata koji su polozili oba parcijalna ispita */
- for(j = 0; j < i ; j++)
- if(studenti[j].broj_bodova1>=10 && studenti[j].broj_bodova2>=10)
- polozili[brojac++]=studenti[j];
- /* Sortiranje studenata (koji su polozili oba parcijalna ispita) prema ukupnom broju bodova */
- for(j = 0; j < i - 1; j++)
- for(k = j + 1; k < i; k++)
- if(studenti[k].broj_bodova1+studenti[k].broj_bodova2 > polozili[j].broj_bodova1+polozili[j].broj_bodova2)
- {
- temp = polozili[j];
- polozili[j] = polozili[k];
- polozili[k] = temp;
- }
- /* Otvaranje i provjera izlazne datoteke (usmeni.txt) */
- izlaz = fopen("usmeni.txt", "w");
- if(izlaz == NULL)
- {
- fclose(ulaz); /* Ako postoji greska sa drugom datotekom, prekini program i zatvori prvu datoteku */
- printf("Greska pri otvaranju datoteke usmeni.txt \n");
- return -1;
- }
- /* Ispis rezultata u datoteku usmeni.txt */
- for(j = 0; j < brojac; j++)
- fprintf(izlaz, "%-20s%-15s%2d\n", studenti[j].prezime, studenti[j].ime, studenti[j].broj_bodova1+studenti[j].broj_bodova2);
- fclose(ulaz);
- fclose(izlaz);
- printf("Izlazna datoteka 'usmeni.txt' je kreirana. \n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement