en fait mon problème est :
- on va dire que ma premiere chaine fait 3 caractères (ex: 123) et la deuxieme en fait 2 (12). J'obtiens bien 111.
- par contre si j'ai la premiere chaine qui a 2 caractères (12) et la deuxieme 3 (123) j'obtiens -a11.
J'ai regardé dans la table ascii si je fais 'a' - 48 je tombe sur mon caractère 1.
Est ce qu'il faut que je vous affiche tout le code?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| while (i < len) //len correspond à la longueur de ma chaine la plus longue
{
if (i >= len2) //len2 correspond à la longueur de la deuxieme chaine
s2[i] = '0';
res[i] = (s1[i] - '0') - (s2[i] - '0') - (retenue - '0'); // res est la chaine résultante
if (((s1[i] - '0') - (s2[i] - '0') - (retenue)) < 0)
{
res[i] += 10;
retenue = 1;
}
else
retenue = 0;
i++;
}
if (retenue == 1)
{
res[i] = (retenue - '0');
}
res[++i] = '\0';
tmp = (my_revstr(res)); |
est ce que quelqu'un voit d'où vient le problème? parce que je ne comprends pas pourquoi dans un sens le calcul foire et dans l'autre sens tout vas bien
Partager