Advertisement
BORUTO-121

top3

Sep 17th, 2021
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.69 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. struct Student {
  5.   char ime[20], prezime[20];
  6.   int ocjene[50];
  7.   int br_ocjena;
  8. };
  9.  
  10. double daj_prosjek(int *ocjene, int vel){
  11.   if(vel==0)return 5.;
  12.   int i;
  13.   double prosjek=0.;
  14.   for(i=0;i<vel;i++){
  15.     if(ocjene[i]==5)return 5.;
  16.     prosjek+=ocjene[i];
  17.   }
  18.   return prosjek/vel;
  19. }
  20. //>0 s2 prije , <0 s1 prije
  21. int daj_prvog(struct Student s1, struct Student s2){
  22.   if(strcmp(s1.prezime,s2.prezime)==0) return strcmp(s1.ime,s2.ime);
  23.   return strcmp(s1.prezime, s2.prezime);
  24. }
  25.  
  26. int genijalci(struct Student *niz, int vel, double prosjek){
  27.   int i,j,prvi=-1,drugi=-1,treci=-1;
  28.   double prviProsjek=0, drugiProsjek=0, treciProsjek=0;
  29.   for(i=0;i<vel;i++){
  30.     double trenProsjek=daj_prosjek(niz[i].ocjene,niz[i].br_ocjena);
  31.     if(trenProsjek<prosjek){//Izbaci ga
  32.       for(j=i;j<vel-1;j++)
  33.         niz[j]=niz[j+1];
  34.       vel--;
  35.       i--;
  36.     }
  37.     else{//Rangiranje
  38.       if(trenProsjek>prviProsjek){
  39.         drugiProsjek=prviProsjek,drugi=prvi;
  40.         prviProsjek=trenProsjek,prvi=i;
  41.       }
  42.       else if(trenProsjek==prviProsjek){//isti
  43.         if(daj_prvog(niz[prvi],niz[i])>=0)  drugi=prvi,prvi=i;
  44.         else drugi=i;
  45.         drugiProsjek=trenProsjek;
  46.       }
  47.       else if(trenProsjek>drugiProsjek){
  48.         treciProsjek=drugiProsjek,treci=drugi;
  49.         drugiProsjek=trenProsjek;drugi=i;
  50.       }
  51.       else if(trenProsjek==drugiProsjek){
  52.         if(daj_prvog(niz[drugi],niz[i])>=0)treci=drugi,drugi=i;
  53.         else treci=i;
  54.         treciProsjek=trenProsjek;
  55.       }
  56.       else if(trenProsjek>treciProsjek){
  57.         treciProsjek=trenProsjek;
  58.         treci=i;
  59.         printf("Usli smo");
  60.       }
  61.       else if(treciProsjek==trenProsjek){
  62.         if(daj_prvog(niz[prvi],niz[i])>=0)treci=i;
  63.         //drugiProsjek=trenProsjek;
  64.       }
  65.     }
  66.   }
  67.   ///Imamo top 3
  68.   if(prvi!=-1 && drugi!=-1 && treci!=-1){
  69.     printf("%s %s\n",niz[prvi].prezime,niz[prvi].ime);
  70.     printf("%s %s\n",niz[drugi].prezime,niz[drugi].ime);
  71.     printf("%s %s\n",niz[treci].prezime,niz[treci].ime);
  72.   }
  73.   else if(prvi!=-1 && drugi!=-1 && treci==-1){
  74.     printf("%s %s\n",niz[prvi].prezime,niz[prvi].ime);
  75.     printf("%s %s\n",niz[drugi].prezime,niz[drugi].ime);
  76.   }
  77.   else if(prvi!=-1 && drugi==-1 && treci==-1){
  78.     printf("%s %s\n",niz[prvi].prezime,niz[prvi].ime);
  79.   }
  80.   return vel;
  81. }
  82. int main(){
  83.   /* AT3: Test sortiranja po prosjeku */
  84.   struct Student studenti[5] ={
  85.     { "Mujo", "Mujic", { 7,7,7,7,8}, 5},
  86.     //{ "Pero", "Peric", { 8,8,8,8,7}, 5},
  87.     { "Beba", "Bebic", { 6,6,6,6,6}, 5},
  88.     { "Mujo", "Mujic", { 7,7,7,7,8}, 5},
  89.     { "Fata", "Fatic", { 7,7,7,8,8}, 5},
  90.   };
  91.   int vel=genijalci(studenti, 4, 6.5);
  92.   printf("%d",vel);
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement