Décalage d'element dans une matrice en c
ld09
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
ld09 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
ld09 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
- Vous ne pouvez pas modifier une partie de matrice ✓ - Forum Excel
- Décalage son image youtube ✓ - Forum YouTube
- Impossible de copier car cet élément est trop volumineux pour le format du volume - Forum MacOS
- Élément introuvable impossible à supprimer - Guide
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
11069
Date d'inscription
Statut
Contributeur
Dernière intervention
1 846
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.