Créer un tableau en C (très simple mais pas pour moi...) - C - Programmation
Marsh Posté le 15-11-2007 à 17:25:23
Tu saisis dans a et b... et tu affiches tab[i]. Comment veux tu que ça affiche les valeurs que t'as saisies ?
Marsh Posté le 15-11-2007 à 17:35:27
bin que ça s'affiche sur une ligne a la suite, j'affiche bien tab[i] lorsque je fais "printf("%ld", tab[i]);" non?
Marsh Posté le 15-11-2007 à 17:40:46
Certes, mais tu ne saisis pas tes valeurs dans tab[i]. Alors au lieu de saisir dans a et b pourquoi ne pas directement les saisir dans tab[0] et tab[1], genre : scanf("%d",&tab[0]);
Edit: les disclaimeurs habituelles : scanf est dangeureux pour votre santéprogramme, à consommer avec modération.
Marsh Posté le 15-11-2007 à 17:53:57
merci j'y suis arrivé, je ne pensais pas qu'on pouvait utiliser cette syntaxe plus simple j'ai édité mon 1er post avec la solution.
Marsh Posté le 15-11-2007 à 18:07:37
Code :
|
Quelle est la valeur de i ? et quelle est donc cette case de tab que tu mets à 0 ?
Marsh Posté le 15-11-2007 à 18:29:14
i=0, je le dis dans "for (i = 0 ; i < 2 ; i++)"
et je dois "initialiser mon tableau" non? (ou pas la peine?)
Marsh Posté le 15-11-2007 à 18:45:11
A la ligne 7 je vois tab[i] = 0 !!!
Alors que tu n'as jamais initialisé AVANT la variable i.
il est plus clair d'écrire
Code :
|
d'ailleur a quoi sert ton tab[i] = 0 ?
Marsh Posté le 15-11-2007 à 18:54:10
je pensais que je pouvais initialiser le tableau et la variable i d'un coup en ecrivant tab[i] = 0 merci du conseil
Marsh Posté le 15-11-2007 à 20:27:39
rarerealities a écrit : je pensais que je pouvais initialiser le tableau et la variable i d'un coup en ecrivant tab[i] = 0 merci du conseil |
int tab[2];
veut dire que tu as initialisé un tableau à deux entiers.
ensuite pour initialiser chaque element t'es obligé d'écrire
for(int i=0; i<2; ++i) tab[i] = 0;
Dans ton cas cette ligne est inutile puisque tu initialises manuellement chaque element avec ton scanf
Autrement même si par convention toutes nouvelles variables entières sont intialisées à 0, Je te conseille vivement d'écrire explicitement chaque initialisation et de mettre qu'une seule instruction par ligne.
Comme tu débutes ceci t'éviteras des problèmes de compressions inutiles.
Et à bientôt ... sur l'allocation dynamique
Marsh Posté le 15-11-2007 à 21:01:23
heu c'est pas for(int i=0; i<2; ++i) int tab[i] = 0;
je ne suis pas sur de bien comprendre la différence avec ce que j'avais fait (tab[i] = 0; au début du code)
en tout cas merki pour les tuyaux
Marsh Posté le 15-11-2007 à 21:30:41
rarerealities a écrit : heu c'est pas for(int i=0; i<2; ++i) int tab[i] = 0; |
Simplifie toi la vie. Il y a seulement 2 étapes:
1) tu crées tes variables
2) tu leurs donnes une valeur
1) tu crées tes variables
Code :
|
2) tu leurs donnes une valeur
Code :
|
Voilà c'est tout ne te complique pas la vie. Bien sûr il te faut rajouter les printf mais rien de plus. Ensuite une fois que tu as bien compris ça tu peux faire une boucle.
La boucle te permettra de donner à i les valeurs 0 et 1:
Code :
|
En passant scanf est déconseillé, mais pour des débutants comme nous je ne vois pas quel est le problème.
Attention: quand tu as écrit:
Code :
|
Or tu n'as pas donné de valeur à i. Dans ce cas tu as donné la valeur 0 à une cas au pif, surement en dehors du tableau (même si tu n'as pas donné de valeur à i il se trouve qu'il en a une, et pas une petite ex: 31456
Une proposition:
Code :
|
Marsh Posté le 16-11-2007 à 10:57:24
ngkreator a écrit : En passant scanf est déconseillé, mais pour des débutants comme nous je ne vois pas quel est le problème. |
Fais un programme de dix lignes qui lit un entier avec scanf, puis exécute-le, et lorsque le programme le demande, entre "oui-oui et sa voiture rouge et jaune".
Enjoy.
Utiliser fgets() c'est plus facile que d'utiliser scanf(), et ensuite ça permet d'étudier les conversions (strtol, strtod, etc), bien plus propre et au passage bien plus formateur, donc mieux pour un débutant.
Marsh Posté le 16-11-2007 à 12:06:40
Elmoricq a écrit : |
Mais un débutant, qui fait ses premiers programmes, il ne va pas les distribuer. Il sera le seul utilisateur. Il sait ce qu'il doit entrer comme type de valeurs.
Je suis d'accord qu'il faut sécuriser tout ça le plus tôt possible pour prendre de bonnes habitudes, mais pour un 1er au 2nd programme je trouve ça pas indispensable.
Bien que en fait c'est vrai que c'est pas plus compliqué, après réflexion. Pourquoi pas.
Marsh Posté le 15-11-2007 à 16:50:55
Bonjour!
je voudrai créer un tableau tout bête, une ligne et 2 colonnes, l'utilisateur doit choisir les valeurs qu'il met dans les cases. Ces valeurs doivent ensuite être affichées.
je comprends pas ou j'ai faux, ou qu'est ce que je dois faire / changer.
merci d'avance.
Message édité par rarerealities le 15-11-2007 à 18:03:00