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

Signaler
Messages postés
15
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
Messages postés
14854
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2020
-
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 :)

4 réponses


#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");
}
}
}
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci


j'ai pas compris ça:
printf(j<n-1?"\t":"\n");
et mrc
Messages postés
14854
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2020
590 > abdelali_1119
Bonjour c'est un if then else en une ligne
if?then:else
j<n-1?"\t":"\n"
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 703
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
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
Messages postés
5429
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 octobre 2020
904
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

Merci infiniment..:)
Messages postés
1
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
14 novembre 2014

et comment faire pour séparer entre les lignes de la matrice ???
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 703
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.