Langage C: tri d'une matrice
Fermé
Amal OA
Messages postés
9
Date d'inscription
lundi 24 octobre 2011
Statut
Membre
Dernière intervention
20 novembre 2011
-
Modifié par Amal OA le 15/11/2011 à 23:10
Amal OA Messages postés 9 Date d'inscription lundi 24 octobre 2011 Statut Membre Dernière intervention 20 novembre 2011 - 20 nov. 2011 à 23:34
Amal OA Messages postés 9 Date d'inscription lundi 24 octobre 2011 Statut Membre Dernière intervention 20 novembre 2011 - 20 nov. 2011 à 23:34
A voir également:
- Langage C: tri d'une matrice
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Débuter langage batch windows - Guide
1 réponse
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
16 nov. 2011 à 14:14
16 nov. 2011 à 14:14
Bonjour, en faisant le tri de la matrice dans un tableau à une dimension ça donne le résultat voulu testé avec qsort :
#include <stdio.h> #include <stdlib.h> void cc(int **m,int *tmp,int d) {/* copy tmp dans m */ int i,j,o; for(o=i=0;i<d;i++){ for(j=0;j<d;j++){ m[i][j]=tmp[o]; o++; printf("%d ",m[i][j]); }printf("\n"); } } int comp(const void *a,const void *b){ return (*(const int*)a-*(const int*)b); } int main(void) { int i,**m,tmp[16]={4,2,6,7,0,3,8,1,9,3,5,9,6,4,7,0}; m=malloc(sizeof(int*)*4); for(i=0;i<4;i++)m[i]=malloc(sizeof(int)*4); printf("avant\n"); cc(m,tmp,4); qsort(tmp,16,sizeof(int),comp); printf("apres\n"); cc(m,tmp,4); for(i=0;i<4;i++)free(m[i]); free(m); return 0; } Résultat : avant 4 2 6 7 0 3 8 1 9 3 5 9 6 4 7 0 apres 0 0 1 2 3 3 4 4 5 6 6 7 7 8 9 9
20 nov. 2011 à 23:34