Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- struct Student {
- char ime[20], prezime[20];
- int ocjene[50];
- int br_ocjena;
- };
- double daj_prosjek(int *ocjene, int vel){
- if(vel==0)return 5.;
- int i;
- double prosjek=0.;
- for(i=0;i<vel;i++){
- if(ocjene[i]==5)return 5.;
- prosjek+=ocjene[i];
- }
- return prosjek/vel;
- }
- //>0 s2 prije , <0 s1 prije
- int daj_prvog(struct Student s1, struct Student s2){
- if(strcmp(s1.prezime,s2.prezime)==0) return strcmp(s1.ime,s2.ime);
- return strcmp(s1.prezime, s2.prezime);
- }
- int genijalci(struct Student *niz, int vel, double prosjek){
- int i,j,prvi=-1,drugi=-1,treci=-1;
- double prviProsjek=0, drugiProsjek=0, treciProsjek=0;
- for(i=0;i<vel;i++){
- double trenProsjek=daj_prosjek(niz[i].ocjene,niz[i].br_ocjena);
- if(trenProsjek<prosjek){//Izbaci ga
- for(j=i;j<vel-1;j++)
- niz[j]=niz[j+1];
- vel--;
- i--;
- }
- else{//Rangiranje
- if(trenProsjek>prviProsjek){
- drugiProsjek=prviProsjek,drugi=prvi;
- prviProsjek=trenProsjek,prvi=i;
- }
- else if(trenProsjek==prviProsjek){//isti
- if(daj_prvog(niz[prvi],niz[i])>=0) drugi=prvi,prvi=i;
- else drugi=i;
- drugiProsjek=trenProsjek;
- }
- else if(trenProsjek>drugiProsjek){
- treciProsjek=drugiProsjek,treci=drugi;
- drugiProsjek=trenProsjek;drugi=i;
- }
- else if(trenProsjek==drugiProsjek){
- if(daj_prvog(niz[drugi],niz[i])>=0)treci=drugi,drugi=i;
- else treci=i;
- treciProsjek=trenProsjek;
- }
- else if(trenProsjek>treciProsjek){
- treciProsjek=trenProsjek;
- treci=i;
- printf("Usli smo");
- }
- else if(treciProsjek==trenProsjek){
- if(daj_prvog(niz[prvi],niz[i])>=0)treci=i;
- //drugiProsjek=trenProsjek;
- }
- }
- }
- ///Imamo top 3
- if(prvi!=-1 && drugi!=-1 && treci!=-1){
- printf("%s %s\n",niz[prvi].prezime,niz[prvi].ime);
- printf("%s %s\n",niz[drugi].prezime,niz[drugi].ime);
- printf("%s %s\n",niz[treci].prezime,niz[treci].ime);
- }
- else if(prvi!=-1 && drugi!=-1 && treci==-1){
- printf("%s %s\n",niz[prvi].prezime,niz[prvi].ime);
- printf("%s %s\n",niz[drugi].prezime,niz[drugi].ime);
- }
- else if(prvi!=-1 && drugi==-1 && treci==-1){
- printf("%s %s\n",niz[prvi].prezime,niz[prvi].ime);
- }
- return vel;
- }
- int main(){
- /* AT3: Test sortiranja po prosjeku */
- struct Student studenti[5] ={
- { "Mujo", "Mujic", { 7,7,7,7,8}, 5},
- //{ "Pero", "Peric", { 8,8,8,8,7}, 5},
- { "Beba", "Bebic", { 6,6,6,6,6}, 5},
- { "Mujo", "Mujic", { 7,7,7,7,8}, 5},
- { "Fata", "Fatic", { 7,7,7,8,8}, 5},
- };
- int vel=genijalci(studenti, 4, 6.5);
- printf("%d",vel);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement