Décalage d'element dans une matrice en c
ld09
Messages postés
9
Statut
Membre
-
ld09 Messages postés 9 Statut Membre -
ld09 Messages postés 9 Statut Membre -
Bonjour
j'ecris un programme en c ou je doit rentrer un nombre et a partir de la imprimer une matrice carré avec le nombre de lignes et de colonnes (par exemple si je rentre 2 je doit avoir une matrice 2x2) qui s'affiche de cette facon:
012
120
201
et j'ai un problème pour décaler les chiffres a chaque changement de ligne.
voici mon code:
int main() {
int i,j,k, num;
int mat[N][M]={0};
scanf("%d",&num);
for (i = 0; i <=num; ++i)
{
for (j=0; j<=num; ++j)
{
for(k=0;k<=num;k++){
if(j==k && i==0){
mat[i][j]=k;
}
if(i>0){
mat[i][j]=mat[0][j+1];
}
}
printf("%d",mat[i][j]);
}
printf("\n");
}
return 0;
}
je pense que le problème est au niveau if(i>0)
Merci d'avance!
j'ecris un programme en c ou je doit rentrer un nombre et a partir de la imprimer une matrice carré avec le nombre de lignes et de colonnes (par exemple si je rentre 2 je doit avoir une matrice 2x2) qui s'affiche de cette facon:
012
120
201
et j'ai un problème pour décaler les chiffres a chaque changement de ligne.
voici mon code:
int main() {
int i,j,k, num;
int mat[N][M]={0};
scanf("%d",&num);
for (i = 0; i <=num; ++i)
{
for (j=0; j<=num; ++j)
{
for(k=0;k<=num;k++){
if(j==k && i==0){
mat[i][j]=k;
}
if(i>0){
mat[i][j]=mat[0][j+1];
}
}
printf("%d",mat[i][j]);
}
printf("\n");
}
return 0;
}
je pense que le problème est au niveau if(i>0)
Merci d'avance!
A voir également:
- Décalage d'element dans une matrice en c
- Open element - Télécharger - HTML
- Décalage son image youtube ✓ - Forum YouTube
- Iptv decalage son image - Forum Box et Streaming vidéo
- Inspecter l'élément mac - Forum MacOS
- Mettre le menu Inspecter l’élément en bas ✓ - Forum Réseaux sociaux
3 réponses
Bonjour,
le nombre à placer dans la matrice est toujours la somme i+j modulo le nombre d'éléments
le nombre à placer dans la matrice est toujours la somme i+j modulo le nombre d'éléments
for ( i = 0 ; i <= num ; ++i ) {
for ( j = 0 ; j <= num ; ++j ) {
mat[i][j] = (i+j) % num;
}
}
fiddy
Messages postés
11653
Statut
Contributeur
1 847
Plutôt % (num+1) dans son exemple.
Bonjour,
Dans ce cas la ou j'utilise la formule
mat[i][j]=(i+j)%num
le resultat m'imprime
010
101
010
au lieu de
012
120
201
dans le cas ou num=2 par exemple
Dans ce cas la ou j'utilise la formule
mat[i][j]=(i+j)%num
le resultat m'imprime
010
101
010
au lieu de
012
120
201
dans le cas ou num=2 par exemple
Bonjour,
Petite parenthèse :
Pour moi une matrice 2x2, ça ressemble plutôt à :
A B
C D
L'exemple que vous donnez est une matrice 3x3. Et dans ce cas, il faut enlever l'égalité stricte dans les conditions for.
Sinon, il faut utiliser le modulo.
Par exemple : (i+j) % (num+1).
Note : ça sera %num tout court si tu prends compte de ma remarque pour la dimension de la matrice.
Petite parenthèse :
Pour moi une matrice 2x2, ça ressemble plutôt à :
A B
C D
L'exemple que vous donnez est une matrice 3x3. Et dans ce cas, il faut enlever l'égalité stricte dans les conditions for.
Sinon, il faut utiliser le modulo.
Par exemple : (i+j) % (num+1).
Note : ça sera %num tout court si tu prends compte de ma remarque pour la dimension de la matrice.