Tri d'une matrice spirale
j'ai trouvé une dificulté pour le trie d'une matrice spirale dans l'exercice au desous, j'ai besoin seulement du principe,si quelqu'un peut m'aider
Faites un programme en C qui effectue la lecture à partir du clavier d’un nombre entier N et puis N2 nombres réels, les trie en ordre décroissant et les range dans un tableau carré en spirale depuis le centre à gauche. Faites et utilisez un sous-programme pour l’affichage des résultats.
merci d'avance
Trie d'une matrice spirale
je doit resoudre ce exercice mais j'ai trouvé une dificulté, ça sera tres gentil si quelqu'un peut m'aider
Faites un programme en C qui effectue la lecture à partir du clavier d’un nombre entier N et puis N2 nombres réels, les trie en ordre décroissant et les range dans un tableau carré en spirale depuis le centre à gauche. Faites et utilisez un sous-programme pour l’affichage des résultats.
voila se que j'ai pu faire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
int mat[20][20]; //la matrice
int i,j; //indice courant
int N,NB,k,x,m,p,h,l;
printf("donner le le rang du matrice: ");
scanf("%d",&N);
NB=N*N ;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
printf("donner mat[%d][%d]: ",i,j);
scanf("%d",&mat[i][j]);
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",mat[i][j]);
printf("\n");
}
m=3 ;
h=(N/2)+1;
for(p=0;p<NB;p++)
for(l=1;l<NB;l++)
for(i=h;N<NB;i++)
{
if(mat[i][m]<mat[i-1][m])
{x= mat[i-1][m];
mat[i-1][m]=mat[i][m] ;
mat[i][m]=x;
}
if(mat[i][m-1]<mat[i][m])
{x= mat[i][m-1];
mat[i][m-1]=mat[i][m] ;
mat[i][m]=x;
m=m+1;
i=pow(l,p) ;
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",mat[i][j]);
printf("\n");
}
} |
merci d'avance
Remplir une matrice en spirale
j'ai un sérieu problème je prépare une tache personnel mais j'ai trouvé un problème pour remplire une matrice en spirale.
j'avai pas trouvé la moindre idée .
NB:le remplissage de matrice se fait en spirale.
si quelqu'un peut m'aidé ça sera tres genti.
et merci d'avance