Adijata

studenti struktura datoteka

Sep 21st, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct Student
  5. {
  6.     char ime[20];
  7.     int prva_parc;
  8.     int druga_parc;
  9.  
  10. };
  11.  
  12.  
  13. struct Student *izbacivanje(struct Student niz[], int*vel)
  14. {
  15.     int i, j;
  16.     struct Student temp;
  17.     for(i=0; i<*vel; i++)
  18.     {
  19.         if(niz[i].prva_parc<10 || niz[i].druga_parc<10 )
  20.         {
  21.             for(j=i; j<(*vel)-1; j++)
  22.                 niz[j]=niz[j+1];
  23.             i--;
  24.             (*vel)--;
  25.         }
  26.     }
  27.     return niz;
  28. }
  29. struct Student *sortiranje(struct Student niz[], int vel)
  30. {
  31.     int i,j;
  32.  
  33.     for(i=0; i<vel; i++)
  34.     {
  35.         for(j=i+1; j<vel; j++)
  36.         {
  37.             if( niz[i].druga_parc+niz[i].prva_parc > niz[j].druga_parc+niz[j].prva_parc ){
  38.             struct Student temp=niz[i];
  39.                 niz[i]=niz[j];
  40.                 niz[j]=temp;
  41.             }
  42.  
  43.         }
  44.     }
  45.     return niz;
  46.  
  47. }
  48.  
  49.  
  50. int main()
  51. {
  52.     FILE *ulaz, *izlaz;
  53.     struct Student niz[5];
  54.     int vel=0, i;
  55.     char znak;
  56.     struct Student *pok=niz;
  57.  
  58.  
  59.     ulaz=fopen("datoteka.txt", "r");
  60.     izlaz=fopen("stat.txt", "w");
  61.  
  62.  
  63.     if (ulaz==NULL || izlaz == NULL)
  64.     {
  65.         printf("otvaranje datoteke nije uspjelo");
  66.         exit(1);
  67.     }
  68.  
  69.     while(fscanf(ulaz, "%s%c%d%c%d\n", &niz[vel].ime, &znak, &niz[vel].prva_parc, &znak, &niz[vel].druga_parc) !=EOF){vel++;}
  70.  
  71.  
  72.  
  73.         pok=izbacivanje(niz, &vel);
  74.         pok=sortiranje(niz, vel);
  75.  
  76.  
  77.         for(i=0; i<vel; i++)
  78.             fprintf(izlaz,"%s %d %d\n", niz[i].ime, niz[i].prva_parc, niz[i].druga_parc);
  79.  
  80. }
  81.  
  82. // ucita iz datoteke niz studenata i bodove na prvoj i drugoj parc
  83. // izbaci studente koji ne mogu na usmeni i sortira ih
  84. // a zatim to sve upise u novu datoteku
Advertisement
Add Comment
Please, Sign In to add comment