Monday, March 4, 2013

#4 Niz struktura ucenik sortianje pretraga ...


#include<stdio.h>
#include<conio.h>

const int max=1;
const int min=0;

struct s_ucenik{
       char ime[15];
       char prezime[15];
       char datum[15];
       float srpski;
       float matematika;
       };
     
struct s_ucenik ucenici[max+1];// niz ucenika    
//definicije funkcija
void ucenik_unos(int mesto);
void ucenik_ispis(int mesto);
void ucenici_unos();
void ucenici_ispis();
float ucenici_srpski_prosek();
float ucenici_srpski_najveca_ocena();
float ucenici_matematika_prosek();
float ucenici_srpski_najmanja_ocena();  
     
       // unesi ga na redni broj mesta
     
main(){
  // unesi jednog ucenika u niz za test
   ucenici_unos();
   ucenici_ispis();
   // ispis proseka iz srpskog
   printf("prosek srpski=%f \n",ucenici_srpski_prosek());
   printf("najveca ocena srpski=%f \n",ucenici_srpski_najveca_ocena());
   printf("najmanja ocena srpski=%f \n",ucenici_srpski_najmanja_ocena());
 getch();    
}

// definicija funkcija
void ucenik_unos(int mesto){
       // uneti ucenika na odredjeno mesto u nizu
       struct s_ucenik ucenik;
       // unos ucenika pr ovi
       printf ("molim vas unesite sve podatke za ucenika \n");
       printf("ucenik.ime=");scanf("%s",&ucenik.ime);
       printf("ucenik.prezime=");scanf("%s",&ucenik.prezime);
       printf("ucenik.datum=");scanf("%s",&ucenik.datum);
       printf("ucenik.srpski=");scanf("%f",&ucenik.srpski);
       printf("ucenik.matematika=");scanf("%f",&ucenik.matematika);
     
       // unesi ga na redni broj mesta
       if (mesto>=min && mesto<=max){
       ucenici[mesto]=ucenik;
       }
       else {
             printf("mesto:%d u nizu nepostoji, min:%d , max:%d\n",mesto,min,max);
            }
     }
   
     void ucenik_ispis(int mesto){
       // uneti ucenika na odredjeno mesto u nizu
       if (mesto>=min && mesto<=max){
       // unos ucenika pr ovi
       printf ("\n ************************\n",mesto+1);
       printf ("\nUcenik %d\n",mesto+1);
     
       printf("ucenik.ime=%s \n",ucenici[mesto].ime);
       printf("ucenik.ime=%s \n",ucenici[mesto].prezime);
       printf("ucenik.ime=%s \n",ucenici[mesto].datum);
       printf("ucenik.ime=%f \n",ucenici[mesto].srpski);
       printf("ucenik.ime=%f \n",ucenici[mesto].matematika);
       }
       else {
             printf("mesto:%d u nizu nepostoji, min:%d , max:%d\n",mesto,min,max);
            }
     }

void ucenici_unos(){
  for (int i=min;i<=max;i++){
       ucenik_unos(i);
      }
}
void ucenici_ispis(){
   for (int i=min;i<=max;i++){
       ucenik_ispis(i);
      }
}
float ucenici_srpski_prosek(){
      float suma=0;
      for (int i=min;i<=max;i++){
       suma+=ucenici[i].srpski;
       }
       return float(suma/float(max+1.0));
}
float ucenici_matematika_prosek(){
      float suma=0;
      for (int i=min;i<=max;i++){
       suma+=ucenici[i].matematika;
       }
       return float(suma/float(max+1.0));
}
float ucenici_srpski_najveca_ocena(){
       // trenutna promenjiva
      float najveci=ucenici[0].srpski;
     
        for (int i=min;i<=max;i++){
          if (najveci<ucenici[i].srpski) najveci=ucenici[i].srpski;
       }
       return najveci;
      }
float ucenici_srpski_najmanja_ocena(){
       // trenutna promenjiva
      float najmanji=ucenici[0].srpski;
     
        for (int i=min;i<=max;i++){
          if (najmanji>ucenici[i].srpski) najmanji=ucenici[i].srpski;
       }
       return najmanji;
      }