Pb sur une simple boucle do while :-((

msoin Messages postés 10 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 26 octobre 2003 - 26 oct. 2003 à 12:22
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 26 oct. 2003 à 13:49
jour'
alors, voila, j'apprend en ce moment les fonctions à argument, et ce qui se met clocher c'est une boucle!!!!
Donc voici mon code, le pb se situe certainement dans la partie "main"en bas
#include 
#include <stdlib.h>

//valeurs au carré
int carre(int valeur)
       {
       return(valeur*valeur);
       }

//addition de ces valeurs jusqu'à ce que l'une <0 .
int addition()
       {
              int accumulation=0;
              for(;;)
              {
              int entree;
              cout<<"entre un nombre :\n";
              cin>>entree;
                    if(entree<0)
                    {
                    break;
                    }
                    accumulation = accumulation +(int)carre(entree);
              }
       return accumulation;
       }

//partie principale

int main()
{
int total;
    do
    {
    cout <<"on entrera des nombres,ceux-ci seront mis au carre puis additionnes\n";
    int total=(int)addition();
    cout <<total<<"\n";
    cout<<"fini\n";
    }while (total!=0);

      system("PAUSE");
      return 0;
}


le pb c'est que la boucle ne s'arrete jamais, même si total=0.
J'y comprend pas grand chose, à moi ça me parait clair.
La preuve que total prend la valeur 0 est que si on execute le prog, il affiche la valeur "total", qu'on peut s'arranger à être égale à 0 en entrant que des nombres inf à 0.
Merci :)

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 oct. 2003 à 13:49
int total; est declare 2 fois !!!
BruNews, ciao...
0
Rejoignez-nous