Bonjour,
Je n'arrive pas à afficher le contenu d'une cellule d'un tableau dont l'indice est égal au contenu d'une cellule d'un autre tableau. Voir le fichier joint à la ligne 44.
Merci d'avance
Bonjour,
Je n'arrive pas à afficher le contenu d'une cellule d'un tableau dont l'indice est égal au contenu d'une cellule d'un autre tableau. Voir le fichier joint à la ligne 44.
Merci d'avance
Bonjour
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int tab[]={10, 100, 1000, 10000}; int indice[]={3, 2, 1, 0}; int i; for (i=0; i < 3; i++) printf("tab[%d]=%d\n", i, tab[indice[i]]);
Ouais, c'est vrai que comme c'est trop difficile de recopier le code ici on n'a qu'à aller le chercher...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Merci sve@r pour votre réponse.
Cependant mon problème n'est pas résolu. Je vous montre le programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 #include <stdio.h> #include <stdlib.h> int main() { int N; printf("Tapez un nombre de 3 chiffres maximum : "); scanf("%d",&N); char Tn[4]; sprintf(Tn,"%03d",N); printf("%s\n",Tn); /* ok */ printf("%c\n",Tn[2]); /* ok */ char Tu[10][7]={"zero", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", }; printf("%s\n",Tu[Tn[2]]); /* n'affiche rien ???? */ return 0; }
En même temps, il y a un gros warning qui fait peur à la compilation :
Si ton compilateur n'affiche pas ce message, c'est que tu n'as pas activée les options de warning (-Wall -Wextra avec gcc).test.c:34:5: warning: array subscript has type 'char' [-Wchar-subscripts]
Après, lis attentivement ton code :
Deux dimensions, une seule coordonnée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char Tu[10][7] Tu[Tn[2]]
EDIT : pardon, je n'avais pas vu le formateur %s, je pensais %c.![]()
Bonsoir,
Le probleme doit venir du fait de la correspondance entre entier et caractère, essaye en mettant:
de sorte que Tn[2] renvoie le code ASCII du chiffre que tu a rentré, si tu lui soustrait 48 (correspondant au codage ascii de 0), tu retombe sur l'indice du tableau qu'il te faut
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("%s\n",Tu[Tn[2]-48]);
edit: j'ai testé et ça marche, je n'ai pas de warning sur code::blocks.
Merci INFINIMENT cheYen !!!!!
C'est fantastique , ça marche chez moi aussi !
Un grand merci à tous le monde, ça fait 1 mois que j'essaie de comprendre.
Faut dire aussi que je débute.
Mille merci !!!!!
Je suis très content d'avoir pu te débloquer alors(surtout que c'est ma premiere contribution sur ce forum :p)
courage et reussite pour ton apprentissage!
Autant alors mettre directement printf("%s\n",Tu[Tn[2]-'0']);. Non seulement ça fait exactement la même chose mais en plus, le jour où on change de codage et où '0' ne sera plus 48 ça continuera à faire la même chose. Et même si ce jour n'arrive jamais, ça reste quand-même plus parlant...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Partager