Affichage de matrice en C [Résolu/Fermé]

Messages postés
15
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
Bonjour,

Je programme en c sous devC et j'aimerais afficher une matrice tabulée en bonne et due forme.
Par exemple je veux afficher: matrice[2][3]={{1,3,8},{5,6,9}}

J'écris:
 for(i=0,i++,i<2)
               for(j=0,j++,j<3){
                     printf("%d /t",matrice[i][j]);
}


On m'affiche: 1 3 8 5 6 9
Or ce que je veux afficher c'est: 1 3 8 dans une ligne et
5 6 9 dans la ligne qui suit

Comment faire?
Je compte sur votre précieuse aide..merci d'avance :)
Afficher la suite 

4 réponses

Meilleure réponse
5
Merci
#define m 2
#define n 3
main()
{
int tab [m][n]= {{1,2,3},{4,5,6}};
int i,j;
for(i=0; i<m; i++)

{
for(j=0; j<n; j++)
{
printf("%d",tab[i][j]);
printf(j<n-1?"\t":"\n");
}
}
}

Dire « Merci » 5

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 71314 internautes nous ont dit merci ce mois-ci

j'ai pas compris ça:
printf(j<n-1?"\t":"\n");
et mrc
Whismeril
Messages postés
13938
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
9 novembre 2019
417 > abdelali_1119 -
Bonjour c'est un if then else en une ligne
if?then:else
j<n-1?"\t":"\n"
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1611
-1
Merci
Salut,
for(i=0,i++,i<2)
for(j=0,j++,j<3){
printf("%d /t",matrice[i][j]);
} 

Attention, dans le for il s'agit de points-virgules et non de simples virgules. De plus ce n'est pas /t pour la tabulation mais \t (avec un backslash). Et enfin, l'incrémentation se trouve en fin dans le for et non au milieu.
Comme tu peux le voir dans ton code, tu mets juste une tabulation et non de retour à la ligne. Le compilateur n'a donc aucune raison d'aller à la ligne. Il t'affiche ce que tu lui demandes.

Ce qui donnerait :
for(i=0;i<2;i++) {
    for(j=0;j<3;j++) {
        printf("%d\t",matrice[i][j]);
    }
    /*on va à la ligne lorsqu'on a affiché toute une ligne*/
    putchar('\n');
}

Cdlt,

Google is your friend
nes77
Messages postés
1
Date d'inscription
lundi 28 novembre 2016
Statut
Membre
Dernière intervention
28 novembre 2016
-
svp si j voulais afficher les lignes d'une matrice je peux pas mettre :
for (i=0;i<3;i++)
printf(%d\t,M[i]) ;  //tout simplement
putchar('\n');



supposant que ma matrice est M
[Dal]
Messages postés
5266
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
8 novembre 2019
817 -
Salut nes77,

si tu as une question, il vaut mieux créer un nouveau sujet, plutôt que de remonter un post vieux de 6 ans (qui plus est un post "résolu").

sinon, il manque des guillemets à ton code :
printf("%d\t",M[i]);
, qui fonctionnera pour un tableau à une dimension d'entiers, mais pas pour une "matrice" ou plutôt ici un tableau C à deux dimensions d'entiers, pour lequel la méthode expliquée par fiddy doit être utilisée.
Messages postés
15
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
1 avril 2010
-1
Merci
Merci infiniment..:)
Messages postés
1
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
14 novembre 2014
-1
Merci
et comment faire pour séparer entre les lignes de la matrice ???
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1611 -
Merci d'ouvrir ton propre post.
Sinon, c'est le \t qui fait office de séparation entre les nombres d'une même ligne.