leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 9 oct. 2004 à 16:15
int Result;
while (0)
{
Result = 0;
for (unsigned ind = 1; ; ind *= 10)
{
char c = getchar ();
switch (c)
{
case '\n':
break;
default:
Result += (c - '0') * ind;
}
}
empiler (Result);
if (estpleine()) break;
}
}
jai pas trop regardé ton code, mais a priori ca doit etre qqch ds ce gout que tu attend....jespere que ca taideras, je sais pas si mon code est totalement exact, mais ca devrait te donner une idée de comment procéder
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 9 oct. 2004 à 20:54
Une pile en struct ??? Tu veux dire faire une class pour encapsuler la pile non ? car sinon, je ne vois pas trop l'intérêt...
_______________________________________
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 10 oct. 2004 à 12:34
pour t'expliquer ce que j'ai fait:
deja je me suis planté c'est while (1) pour faire un boucle infinie que j'arreterais avec l'instruction break.
ensuite tu scanne tes nombres caractere par caractere, c'est a dire que si tu veux scanner 123
tu scanne le caractere 1 puis le caractere 2 puis la caractere 3.
mais vu que tu as des caracteres et que tu dois les convertir en int, tu fais caracatere C - code ASCII du caractere '0', ainsi si tu avais bien entré un chiffre, tu vas avoir le chiffre correspondant transformé de caractere en int. ensuite, tu dois faire en sorte que ton int soit correct, donc (et la mon algo est encore faux) tu fais: (algo de horner):
je prend mon chiffre, je le met dans mon int, mais avant de le mettre, il faut que je multiplie le reste par 10 pour que ca marche. pour texpliquer mieux, je fais:
je rentre 1
je multiplie par 10 et jajoute 2 jai 12
je multiplie par 10 jajoute 3 jai 123.
jespere' que cest un peu plus clair eet qu'a partir de mon code et de ces precisions tu vas t'en sortir