Thursday, November 21, 2013

#4 Sortiranje ocena uz pomoć funkcija i pokazivača na nizove

Napisati program koji radi sledeće:

  1. Unosi ocene učenika,
  2. ispisuje niz ocena  vertikalno i horizontalno u redu
  3. pronalayi najveću i najmanju ocenu u nizu,
  4. sortira niz po rastućem i opadajućem redosledu.

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

#define max_elem 5
// niz od maximalnog broja elemenata
int ocene[max_elem];
 
 void niz_unos (int *niz,int n);
 void niz_ispis_vert(int *niz,int n);
 void niz_ispis_hor(int *niz,int n);
 int niz_min(int *niz,int n);
 int niz_max(int *niz,int n);
 
 void niz_sort_up (int *niz,int n);
 void niz_sort_down (int *niz,int n);
  
main (){
     //unesi elemente niza
     niz_unos(ocene,max_elem);
     printf("\n");
     niz_ispis_vert(ocene,max_elem);
     
     printf("Najmanji element niza::%d \n",niz_min(ocene,max_elem));
     
     printf("Najveci element niza::%d \n",niz_max(ocene,max_elem));
     
     printf("\n");
     printf("Sortiraj niz po rastucem redosledu i ispisi elemente \n");

     niz_sort_up(ocene,max_elem);
     niz_ispis_hor(ocene,max_elem);
     
     printf("Sortiraj niz po opadajucem redosledu i ispisi elemente \n");
     niz_sort_down(ocene,max_elem);
     niz_ispis_hor(ocene,max_elem);
     
 getch();    
}

 void niz_unos(int *niz,int n){
      for(int i=0;i<n;i++){
       printf("[%d]=",i);
       scanf("%d",&niz[i]);        
      } 
}
 void niz_ispis_vert(int *niz,int n){
      for(int i=0;i<n;i++){
       printf("[%d]=%d\n",i,niz[i]);     
      } 
       printf("\n"); //predji u novi red posle ispisa svih elemenata niza
 }
  void niz_ispis_hor(int *niz,int n){
      for(int i=0;i<n;i++){
       printf("%d, ",niz[i]);       
      } 
      printf("\n"); //predji u novi red posle ispisa svih elemenata niza
 }
 int niz_min(int *niz,int n){
     int min=niz[0];
      for(int i=1;i<n;i++){
       if(min>niz[i]) min=niz[i];         
      } 
      return min;
}
int niz_max(int *niz,int n){
     int max=niz[0];
      for(int i=1;i<n;i++){
       if(max<niz[i]) max=niz[i];         
      } 
      return max;
}

void niz_sort_up (int *niz,int n){
     for(int i=0;i<n-1;i++){
       for(int j=i+1;j<n;j++){
            // provera da li je veci trenutni element niza od sledeceg
            // ako jeste stavi ga u trenutni element niza
            if (niz[i]>niz[j]){
             int tmp=niz[i];
             niz[i]=niz[j];
             niz[j]=tmp;                                     
            }
       }      
     }
     
}
void niz_sort_down (int *niz,int n){
     for(int i=0;i<n-1;i++){
       for(int j=i+1;j<n;j++){
            // provera da li je manji trenutni element niza od sledeceg
            // ako jeste stavi ga u trenutni element niza
            if (niz[i]<niz[j]){
             int tmp=niz[i];
             niz[i]=niz[j];
             niz[j]=tmp;                                     
            }
       }      
     }
     
}