Comment trier une matrice

Contenu du snippet

Howdy ;
On a toujours pensé à trier les tableaux, les listes chainées et les files : trions les matrices alors !
Je serais heureux de recevoir vos critiques constructives.
Thanks.

Source / Exemple :

// This program is done
         // Billal Begueradj
         // Bejaia Univerity.
         // Regards

  #include<stdio.h>
  #include<conio.h>
  #include<iostream.h>
  int n;

  void main() /* début du programme principal */
  {

  /* partie déclaration des variables */

  int matrice[10][10];
  int vecteur[100];
  int i,j,k=0,m,dim;
  int supplement;    /* pour la permutation */
  int max,rgmax;

  puts("nnt     ****  Bienvenue:  ****");
  printf("nn Ce programme fait trier une matrice donnée en décroissance");
  puts("                                ****               ****             ");
  puts("                       ****   ");
  printf("nIntroduire le nombre de lignes de la matrice :");
  scanf("%d",&m);
  puts("nIntroduire le nombre de colonnes:");
  scanf("%d",&n);
  dim=n*m; /*dim est la dimension du vecteur émanant de la matrice */

  /* ici on va saisir la matrice, en meme temps on remplit le vecteur */
  puts("nSaisissez les éléments de la matrice :n");
  for (i=0; i<m; i++)
  for (j=0; j<n; j++)
    {
   printf("Elément [%d][%d] : ",i,j);
   scanf("%d", &matrice[i][j]);
   supplement=matrice[i][j];
   vecteur[k]=supplement;  //remplissage du vecteur en meme temps que la
           // saisie de la matrice pour économiser les instructions */
   k++;
    }

  clrscr();       //on efface l'écran surchargé
  puts("Voici la matrice que vous avez tapé:");
   for(i=0;i<m;i++)
   {
   for(j=0;j<n;j++)
   printf("%3d",matrice[i][j]);
   printf("n");
   }

  /* maintenant on va trier le vectuer en décroissance */

 for(i=0;i<dim;i++)
 {
 max=vecteur[i];
 rgmax=i;
 for(j=i+1;j<dim;j++)
  {
  if(max<vecteur[j])
    {
    max=vecteur[j];
    rgmax=j;
    }
  }
  vecteur[rgmax]=vecteur[i];
  vecteur[i]=max;
  }

printf("n");
k=0;

/* maintenant, on va affecter les éléments du vecteur à la matrice */
for(i=0;i<m;i++)
 for(j=0;j<n;j++)
 {
 matrice[i][j]=vecteur[k];
 k++ ;}
 puts("nnVoici la matrice triée:");
 for(i=0;i<m;i++)
 {
 for(j=0;j<n;j++)
 printf("%3d",matrice[i][j]);
 printf("n");
 }

cout<<"nntCe programme est réalisé par :n";
cout<<"nntt Prénoom :       Billal";
cout<<"ntt Nom :           BEGUERADJ";

}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.