Tri d'une matrice
england
-
khadija -
khadija -
slt tout le monde:
voila je voudrai faire un Tri de la matrice selon l'ordre croissant: j'ai fait un programme mais ça ne marche pas: l'idée est juste mais je ne sais pas!!!!
j'ai comparer chaque élément de la matrice avec le reste en sauvgardant la position de la plus petite valeur. et apres en change la valeur qu'on a comparer avec la plus petite valeurs dns la matrice.
merci a tous d'avance
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int mat[20][20]; //la matrice
int i,j; //indice courant
int ligne,colon; //les dimension de la matrice
int IndiceLigne,IndiceColon; //indice pour parcourir la matrice et
//et comparer ces valeurs
int Aide; // valeur d'aide
int posLign,posColon; //position de la plus petite valeur dans la matrice
printf("donner le nombre de ligne de votre matrice: ");
scanf("%d",&ligne);
printf("\ndonner le nombre de colonne de votre matrice: ");
scanf("%d",&colon);
for(i=0;i<ligne;i++)
for(j=0;j<colon;j++)
{
printf("donner mat[%d][%d]: ",i,j);
scanf("%d",&mat[i][j]);
}
for(i=0;i<ligne;i++)
{
for(j=0;j<colon;j++)
printf("%d ",mat[i][j]);
printf("\n");
}
printf("\n\n le Tri est:\n");
//pour le Tri croissant
for(i=0;i<ligne;i++)
for(j=0;j<colon;j++)
{
posLign = i; //la position de la plus petite valeur
posColon = j;
//rechercher la position de la plus petite valeur
for(IndiceLigne=i;IndiceLigne<ligne;IndiceLigne++)
for(IndiceColon=0;IndiceColon<colon;IndiceColon++)
{
if(mat[IndiceLigne][IndiceColon]<mat[posLign][posColon])
{
posLign=IndiceLigne;
posColon = IndiceColon;
}
}
Aide=mat[i][j];
mat[i][j]=mat[posLign][posColon];
mat[posLign][posColon]=Aide;
}
for(i=0;i<ligne;i++)
{
for(j=0;j<colon;j++)
printf("%d ",mat[i][j]);
printf("\n");
}
}
voila je voudrai faire un Tri de la matrice selon l'ordre croissant: j'ai fait un programme mais ça ne marche pas: l'idée est juste mais je ne sais pas!!!!
j'ai comparer chaque élément de la matrice avec le reste en sauvgardant la position de la plus petite valeur. et apres en change la valeur qu'on a comparer avec la plus petite valeurs dns la matrice.
merci a tous d'avance
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int mat[20][20]; //la matrice
int i,j; //indice courant
int ligne,colon; //les dimension de la matrice
int IndiceLigne,IndiceColon; //indice pour parcourir la matrice et
//et comparer ces valeurs
int Aide; // valeur d'aide
int posLign,posColon; //position de la plus petite valeur dans la matrice
printf("donner le nombre de ligne de votre matrice: ");
scanf("%d",&ligne);
printf("\ndonner le nombre de colonne de votre matrice: ");
scanf("%d",&colon);
for(i=0;i<ligne;i++)
for(j=0;j<colon;j++)
{
printf("donner mat[%d][%d]: ",i,j);
scanf("%d",&mat[i][j]);
}
for(i=0;i<ligne;i++)
{
for(j=0;j<colon;j++)
printf("%d ",mat[i][j]);
printf("\n");
}
printf("\n\n le Tri est:\n");
//pour le Tri croissant
for(i=0;i<ligne;i++)
for(j=0;j<colon;j++)
{
posLign = i; //la position de la plus petite valeur
posColon = j;
//rechercher la position de la plus petite valeur
for(IndiceLigne=i;IndiceLigne<ligne;IndiceLigne++)
for(IndiceColon=0;IndiceColon<colon;IndiceColon++)
{
if(mat[IndiceLigne][IndiceColon]<mat[posLign][posColon])
{
posLign=IndiceLigne;
posColon = IndiceColon;
}
}
Aide=mat[i][j];
mat[i][j]=mat[posLign][posColon];
mat[posLign][posColon]=Aide;
}
for(i=0;i<ligne;i++)
{
for(j=0;j<colon;j++)
printf("%d ",mat[i][j]);
printf("\n");
}
}
A voir également:
- Tri d'une matrice
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Peut on récupérer un colis au centre de tri chronopost - Forum Mobile
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms - Forum LibreOffice / OpenOffice
- Tri matrice algorithme - Forum C
5 réponses
essaye d'utiliser la fonction sort :
A=[1 4 6 2 7 8 9 2]
A =
1 4 6 2 7 8 9 2
>> [ATrier indices]=sort(A)
ATrier =
1 2 2 4 6 7 8 9
indices =
1 4 8 2 3 5 6 7
Si tu préfère dans l'ordre décroissant utilise sort(-A)
A=[1 4 6 2 7 8 9 2]
A =
1 4 6 2 7 8 9 2
>> [ATrier indices]=sort(A)
ATrier =
1 2 2 4 6 7 8 9
indices =
1 4 8 2 3 5 6 7
Si tu préfère dans l'ordre décroissant utilise sort(-A)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question