Tableau char
Résolu
ld09
Messages postés
9
Statut
Membre
-
ld09 Messages postés 9 Statut Membre -
ld09 Messages postés 9 Statut Membre -
Bonjour,
je veux afficher un tableau char(que je saisis avec scanf ) avec printf c'est un tableau 3x3 et quand je l'affiche il manque les 2 dernieres cases (les cases [2][1] et [2])
par exemple si je rentre
xxx
xxx
xxx
cela m'affiche
xxx
xxx
x
voici le code
#include <stdio.h>
#define n 3
int main( )
{
char arr[n][n];
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%c",&arr[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%c",arr[i][j]);
}
}
return 0;
}
Merci beaucoup
je veux afficher un tableau char(que je saisis avec scanf ) avec printf c'est un tableau 3x3 et quand je l'affiche il manque les 2 dernieres cases (les cases [2][1] et [2])
par exemple si je rentre
xxx
xxx
xxx
cela m'affiche
xxx
xxx
x
voici le code
#include <stdio.h>
#define n 3
int main( )
{
char arr[n][n];
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%c",&arr[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%c",arr[i][j]);
}
}
return 0;
}
Merci beaucoup
A voir également:
- Tableau char
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
2 réponses
Bonjour,
Tu affiche bien les 9 premiers caractères que tu as tappé c-a-d :
x x x CR x x x CR x
La première ligne contient x x x
La seconde contient CR x x
La troisème x CR x
les caractères entrés ont été mémorisées et ont été retranscrits.
Tu affiche bien les 9 premiers caractères que tu as tappé c-a-d :
x x x CR x x x CR x
La première ligne contient x x x
La seconde contient CR x x
La troisème x CR x
les caractères entrés ont été mémorisées et ont été retranscrits.
int main(void){
char tab[3][3];
int i, j;
for(i = 0; i < 3 ; i++){
for(j = 0; j < 3 ; j++){
scanf("%c",&tab[i][j]);
printf("\nRemplissage [%d,%d] %c",i,j,tab[i][j]);
}
}
for(i = 0; i < 3 ; i++){
for(j = 0; j < 3 ; j++){
if(j==0) printf("\n");
printf("%c ",tab[i][j]);
}
}
return 0 ;
}
ça fonctionne si on rempli donne tout le contenu du tableau d'un coup :
$./ta
abcdefghi
Remplissage [0,0] a
Remplissage [0,1] b
Remplissage [0,2] c
Remplissage [1,0] d
Remplissage [1,1] e
Remplissage [1,2] f
Remplissage [2,0] g
Remplissage [2,1] h
Remplissage [2,2] i
a b c
d e f
g h i
Par contre si on donne lettre par lettre le scanf capture le \n dans le buffer je suppose, du coup ça crée des problèmes
comment je peux faire pour qu'il m'imprime uniquement les caractères (cad
xxx
xxx
xxx) et non CR?
Tu lis des char, donc le \n est rajouté dans le tableau. Tu auras par exemple arr[0][0] = 'c' arr[0][1] qui vaut '\n' si l'utilisateur appuie sur la touche 'c' et valide.
Il faut donc traiter ce cas.
Par exemple :
à mettre à la place de ton scanf().