Matrice s'affiche sous forme d'une ligne
Résolu/Fermémamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025 - 8 déc. 2022 à 17:40
- Matrice s'affiche sous forme d'une ligne
- Mise en forme conditionnelle excel - Guide
- Partager photos en ligne - Guide
- Aller à la ligne excel - Guide
- Site de vente en ligne particulier - Guide
- Mise en forme tableau word - Guide
3 réponses
Modifié le 8 déc. 2022 à 17:30
putchar() comme son nom le rappelle s'attend à recevoir un char, tu lui passes une chaîne.
et en mettant le putchar() une ligne avant, tu auras un retour à la ligne après chaque ligne de nombres.
Si tu as des nombres de 2 chiffres ou plus, ils seront tous collés.
Remplaces ton format par " %2d" avec un espace avant le %
8 déc. 2022 à 17:40
Bonjour,
Comme le propose Dalfab #1, Il faut soit utiliser :
putchar('\n')
mais sinon, tu peux aussi écrire :
printf("\n");
Comme il le signale également, tu ne passes à la ligne qu'une seule fois, une fois tout le contenu de la matrice écrit. Or dans ton cas, tu veux passer à la ligne à chaque fois que tu as fini d'écrire une ligne de matrice. Il faut donc ajouter un passage à la ligne à la fin de la première boucle.
Enfin comme le dit également fort justement PIerrot le fou #2, il faut que tes printf actuels prévoient une manière de séparer les valeurs de ta matrice qui figurent sur la même ligne, par exemple en insérant un espace devant ou derrière chaque valeur. Car si ta matrice contient des valeurs qui s'écrivent plus de deux caractères, tu auras des valeurs qui se toucheront.
Dernière remarque, par convention le type de retour de main() n'est pas cohérent avec return 0, donc son type de retour devrait être int.
Une fois toutes ces corrections apportées, on obtient :
#include <stdio.h> #include <stdlib.h> int main() { int TS[3][3]; int i, j; printf("Donner les 9 éléments de tableau\n"); for (i = 0; i < 3 ;i++){ for (j = 0; j < 3; j++){ scanf("%d", &TS[i][j]); } } printf("Votre tableau sous forme matrice est \n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++ ){ printf("%2d ", TS[i][j]); } printf("\n"); } printf("\n"); return 0; }
Résultat :
(mando@silk) (~) $ gcc toto.c && ./a.out
Donner les 9 éléments de tableau
11
12
13
21
22
23
31
32
33
Votre tableau sous forme matrice est
11 12 13
21 22 23
31 32 33
Bonne chance