Bonsoir je travaille actuellement sur un programme demandant a l'utilisateur une suite de nombres, puis indique si la somme des deux premiers nombres est egale au troisieme.
Par exemple pour la suite:3 4 6 10 5 –4 1 –3 3 0.
Le programme affichera 4.
4+6=10; 5+(-4)=1; -4+1=-3, -3+3=0;
while (num3!=0)
{
if (num1+num2==num3)
nbr++;
else
;
num1=num2;
num2=num3;
cout<<"Entrez un autre nombre:"<<endl;
cin>>num3;
}
cout<<nbr;
return 0;
}
Le programme doit s'arreter des que la valeur 0 est entrée par l'utilisateur. Cependant lorsque j'execute mon programme et que j'entre la suite de chiffre precedente, celui m'affiche 3 et non 4.
Je ne comprend pas pourquoi, lorsque la valeur 0 est entré, le programme s'arrete directement et n'execute pas d'abord la condition.
Je n'ai pas beaucoup de temps alors un exemple vaut mieux qu'un long discours
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main ()
{
double num1,num2,num3;
int nbr = 0; //Création ET initialisation de ta variable en une seule ligne
cout<<"num1"<<endl;
cin>>num1;
cout<<"num2"<<endl;
cin>>num2;
cout<<"num3"<<endl;
cin>>num3;
while ( 1 ) //Boucle infinie : tout s'executera avant qu'il n'y ait un break : ce n'est PAS conseillé d'utiliser cette méthode mais dans le cas d'un petit exercice, tu peux, à condition de bien vérifier à ce que ta boucle rencontre à un moment un break !
{
if (num1+num2==num3) //Tu testes si ta somme est correcte
nbr++; //Si oui tu incrémentes ton compteur
if(num3 == 0) //Tu test ICI (de manière à faire le test (ligne juste au dessus) même pour num3==0) si num3==0
break; //Si oui tu stopes la boucle
num1=num2;
num2=num3;
cout<<"Entrez un autre nombre:"<<endl;
cin>>num3;
}
cout<<nbr;
return 0;
}
En fait ta méthode était bonne sauf que ton programme ne relançait pas la boucle pour num3=0 ainsi il te manquait le test "-3+3=0"
Si tu veux éviter la boucle infinie avec le break, tu peux utiliser un "while ( num3 != 0 || num1+num2==num3 )" !
ciao
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........