Problème boucle for C++ :

Pilotwings Messages postés 14 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 14 mai 2010 - 10 janv. 2009 à 23:32
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 11 janv. 2009 à 18:27
Bonjour à toutes et à tous, j'essaye de m'exercer sur des exos que je n'arrive pas à terminer comme il faut.

On me demande de remplir le programme suivant sans oublier de supprimer les erreurs :

Code :
#include
using namespace std;
int main()
{
int nbrPompes;
cout<<"ahhh on me prend pour un programmeur cpp \n"
cout<<"tu va me faire ";
cin>>nbrPompes;
for (___________________)
{
cout<<"et de "<
using namespace std;
int main()
{
int nbrPompes;
cout<<"ahhh on me prend pour un programmeur cpp \n";
cout<<"tu va me faire ";
cin>>nbrPompes;
for ( int nbrPompes ; nbrPompes>0 ; nbrPompes++)
{
cout<<"et de "<<nbrPompes+1<<" pfff \n";
}
system("pause");
return 0;
}

Quand j'exécute, le résultat ne fait qu'augmenter sans s'arrêter et je souhaite un résultat fixe en gardant ma boucle for !


Pouvez vous m'aider SVP ?

Merci

2 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
11 janv. 2009 à 00:12
Salut,

Essayes plutot : for(int i = 0; i < nbrPompes ; i++)

Shell
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
11 janv. 2009 à 18:27
Exact, mais sincèrement Pilotwings, va lire des tutos sur l'utilisation de la boucle for() parce-que ce que tu as fait, c'est assez catastrophique.
La programmation, c'est avant tout de l'algo. L'algo c'est avant tout des maths. Et les maths, c'est avant tout de la réflexion. Or il n'y a pas de réflexion dans ton code.
J'explique vite fait, histoire que mon commentaire ne soit pas inutile.
for (initialisation;condition de la boucle;action sur l'indice de boucle) {commandes }

Toi, tu as fait ceci :
"déclarer une variable de type entier, sans connaître sa valeur (qui existe déjà, en plus), boucler tant que cette variable est supérieure à zéro, incrémenter de 1 cette variable à chaque passage dans la boucle".
Tu arrives là à une boucle infinie (tu incrémentes de 1 une variable qui est déjà supérieure à zéro, donc la boucle ne s'arrêtera jamais).

Voilà ce qu'a fait DeAtHCrAsH maintenant :
"déclarer une variable de type entier et de valeur 0, boucler tant que cette variable est inférieure à nbrPompes (dont on connait la valeur), incrémenter de 1 cette variable à chaque passage dans la boucle".
En plus, ça colle très bien avec l'énnoncé de départ qui contenait ceci :
cout<<"et de "<<i+1<<" pfff "<<*"\n";

Toi, tu as été contraint de remplacer i par nbrPompes, donc tu aurais du savoir que ton code était déjà faux au départ.
Ce commentaire ne donne pas la réponse directe à ton problème (DeAtHCrAsH s'en est chargé ) mais à expliquer un peu.Sinon dans 3 jours tu reviens avec le même genre de questions de base.

Cordialement, uaip.
0
Rejoignez-nous