Réponse acceptée !
Salut,
Déjà, je doute que ta boucle fonctionne :
for(int i=2;i<=0;i--)Déclarée comme ça, aucune passage dans cette boucle ne sera effectué (mais on va supposer que c'est une erreur de frappe).
Sinon l'algo de ta soustraction est assez naze, car faux :
- 1er passage dans la boucle, tu calcules entier2[3], or il n'y a que 3 cases (la dernière étant donc entier2[2] puisque la numérotation commence à 0)
- 1er passage toujours, tu calcules entier1[2], or il n'y a que 2 cases (la dernière étant donc entier1[1] puisque la numérotation commence à 0)
Ce problème explique donc ton signe négatif :
on a (en imaginant >= au lieu de <= dans la boucle) :
11111111 222222222 <inconnu>
11111111 222222222 111111111 <inconnu>
- 1er passage : <inconnu> - <inconnu> =
<inconnu> -> se range dans la case <inconnu> -> inutile
- 2eme passag
e : 111111111 - 222222222 = -111111111 -> se range dans la dernière case de entier2[]
- 3eme passage : 222222222 - 111111111 =
111111111 -> se range dans la deuxième case de entier2[]
fin de la boucle
la première case de entier2[] n'ayant pas été modifiée, elle garde sa valeur 11111111.
On obtiens donc pour entier2[] : 11111111 11111111 -11111111
Ton algo est donc à refaire. Mais je ne vais pas te donner la réponse. Déjà que tout ce que je t'ai dit là, c'était à toi de le faire (un programmeur est censé être capable de suivre l'évolution de ses variables au cours du programme, on apprend ça avant même d'apprendre à programmer)
Sinon, tu t'es trompé de rubrique : ton code est en C++, or on est dans la rubrique C 
Cordialement, uaip.