Wednesday, December 21, 2011

#5 Matrice sortiranje preko niza

// matrice sortiranje
#include <stdio.h>
#include <conio.h>

int matrica[3][3];
int niz[9];
 // funkcije unos matrice
 void _unosMatrice(){
        for (int i=0;i<3;i++){
          for (int j=0;j<3;j++){
              printf("m[%d][%d]=",i,j); scanf("%d",&matrica[i][j]);
              }
          }
      }
 void _ispisMatrice(){
        for (int i=0;i<3;i++){
          for (int j=0;j<3;j++){
              printf("%d ",matrica[i][j]);
              }
              printf("\n");
          }
      }
 void _matricaUniz(){
      int k=0;
       for (int i=0;i<3;i++){
          for (int j=0;j<3;j++){
             niz[k]=matrica[i][j];
             k++;
              }
          }
      }
 void _nizuMatricu(){
      int k=0;
       for (int i=0;i<3;i++){
          for (int j=0;j<3;j++){
             matrica[i][j]=niz[k];
             k++;
              }
          }
      }
  void _ispisNiza(){
    for (int i=0;i<9;i++){
      printf("%d ",niz[i]);
    } 
     
      }
  void _nizMaliKaVelikom(){
       int burence=0;
        for (int i=0;i<9;i++){
          for (int j=i+1;j<9;j++){
            if (niz[i]>niz[j]){
                 burence=niz[i];
                 niz[i]=niz[j];
                 niz[j]=burence;              
            }
              }
          }
      }
      
  
     
     
 main(){
  
     // unesi matricu
     _unosMatrice();
     // novi red
     printf("\n");
     //ispis matrice
     _ispisMatrice();
     _matricaUniz();
      // novi red
     printf("ispis niza \n");
     _ispisNiza();
     printf("sortiranje i ispis \n");
     _nizMaliKaVelikom();
      printf("ispis sort  niza \n");
     _ispisNiza();
    
     _nizuMatricu();
     printf("ispis sort matrice \n");
     _ispisMatrice();
     getch();
}

1 comment:

  1. Može mala pomoć?
    Trebala bi mi funkcija sortkol koja sortira kolone matrice A, u rastućem ili opadajućem redosledu. Ako je srednja vrednost j kolone veća od srednje vrednosti matrice A, kolona se sortira po rastućem redosledu a ako je manja ili jednaka onda se sortira po opadajućem redosledu. Za pronalaženje srednje vrednosti koristi se funckija srednja, ili u mom slučaju dve funkcije:
    int srednjakolona(int x[][kolone],int n, int m) //racunanje srednje vrednosti kolone
    { int i,j;
    float sr[10],s=0,br=0;

    for(i=0;i<10;i++) sr[i]=0;

    for(j=0;j<m;j++)
    {
    for(i=0;i<n;i++)
    {
    s+=x[i][j];
    br++;

    }
    sr[j]=s/br;
    br=0;
    s=0;
    printf(" %.2f ",sr[j]);
    }
    return sr[j];
    }

    int srednjamatrica(int x[vrste][kolone],int n, int m) //racunanje srednje vrednosti matrice
    { int i,j;
    float sr=0,s=0,br=0;



    for(j=0;j<m;j++)
    {
    for(i=0;i<n;i++)
    {
    s+=x[i][j];
    br++;

    }
    sr=s/br;
    br=0;
    s=0;
    printf(" %.2f ",sr);
    }
    return sr;

    }

    Hvala unapred.

    ReplyDelete