Вы находитесь на странице: 1из 2

//@EL Jocker

#include<stdio.h>
#include<stdlib.h>
#define MAX 50
int main(){
// declaration de matrice & tableau
int M[MAX][MAX];
int Vecteur[MAX];
// declaration des variables
int i,j,L,C,x,n,max,posmax;
// controle de saisie nbr de lignes
do{
printf("\nTaper nombre de lignes : ");
scanf("%d",&L);
}while(L<0 || C>MAX);
// controle de saisie nbr colones
do{
printf("Taper nombre de colones: ");
scanf("%d",&C);
}while(C<0 || C>MAX);
// remplissage du matrice
printf("\n");
for(i=0;i<L;i++){
for(j=0;j<C;j++){
printf("M[%d][%d] : ",i,j);
scanf("%d",&M[i][j]);
}
printf("\n");
}
// Affichage du matrice avant le trie
printf("\n****_Matrice Avant le trie_****\n\n");
for(i=0;i<L;i++){
for(j=0;j<C;j++){
printf("%7d",M[i][j]);
}
printf("\n");
}
// conversion du matrice sous forme d'un tableau unidimentionnel
x = 0;
for(i=0;i<L;i++){
for(j=0;j<C;j++){
Vecteur[x]= M[i][j]; // transmission des valeurs
x++;
}
}
n=L*C; //Taille du tableau Vecteur[L*C];
while(n>0){
// Recherche du Valeur Max et Sa Position
max = Vecteur[0];
posmax = 0;
for(i=0;i<n;i++){
if(Vecteur[i]>max){
max = Vecteur[i]; //Valeur Max du Tableau Vecteur[];
posmax = i; // position du Max ;
}
}
//trier les valeurs croissement
for(i=posmax;i<n; i++){
Vecteur[i] = Vecteur[i+1];// decalage des valeurs
}
Vecteur[n-1] = max;
n--;
}
x=0;
for(i=0;i<L;i++){
for(j=0;j<C;j++){
M[i][j] = Vecteur[x];// transmission des valeurs triés
x++;
}
}
// Affichage du Matrice
printf("\n****_Matrice Apres le trie_****\n\n");
for(i=0;i<L;i++){
for(j=0;j<C;j++)
printf("%7d",M[i][j]);
printf("\n");
}
return 0;
}

Вам также может понравиться