C++, aide pour une boucle
Résolu
Misumin
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Misumin Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Misumin Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai décider de créer une boucle dans un de mes codes C++. Le logiciel que j'utilise est Dev C++, si ça peut aider. Mais bon, en fait, mon problème c'est une boucle "while" et pour tout vous dire, je ne trouve pas où peux bien être le problème. Alors je vais vous montrer le code:
#include<iostream>
using namespace std;
int main()
{
int a,i,z,x,p,b,s,aa,aaa,Saa,edb,sdd,f,d,dm,df,vrm,c,m,vdm,vi;
// Cette partie ci contient le code qui n'a pas besoin d'être retouché
cout<<"Numero du monstre:";
//Le numéro du monstre indique en faire les dommages qu'il va faire... Jusqu'ici pour moi tout est compréhensible, tout va bien.
cin>>m;
//On indique la Variable m; qui est donc le numéro du monstre (1 dans ce cas-ci)
dm=m-d;
//Dommage reçu
if(dm<=0)dm=0;
//On ne peux pas recevoir des dégât négatifs
df=f-(m+2);
//Les dégâts fait au monstre
vdm=m*2+21;
//C'est ici que ça ce complique dans ma tête. Vdm, qui veux dire vie du monstre entier est équivalent à 1, dans ce cas-ci, fois 2, donc 2, + 21, donc 23. Alors la vie du monstre entier est de 23.
vrm=vdm-df;
//Vrm veux dire vie restante au monstre. Donc Vie du monstre entier (vdm) moins les dommages faits (df)
while (vrm>0)
//Tant que la vie restante au monstre est supérieur à 0, la boucle continue
{
cout<<"dommage recu:"<<dm<<endl;
cout<<"Dommage fait:"<<df<<endl;
cout<<"Vie restante:"<<50-dm<<endl;
cout<<"Vie restante au monstre:"<<vrm<<endl;
//La vie restante est donc en fait, vdm-df, mis dans une seule variable
vrm-df;
//On change la variable vrm et on lui enlève les dommage faits (df). Donc dans la prochaine boucle, ça devrait faire à vie restante au monstre: vrm-df et ensuite : (vrm-df)-df, jusqu'à 0.
Cependant, lorsque je lance la boucle, cette dernière descend à l'infini sous 0. Pourquoi?
}
cout<<"vous avez gagne!"<<endl;
system ("Pause");
return 0;
}
Merci de votre aide et de votre compréhension.
J'ai décider de créer une boucle dans un de mes codes C++. Le logiciel que j'utilise est Dev C++, si ça peut aider. Mais bon, en fait, mon problème c'est une boucle "while" et pour tout vous dire, je ne trouve pas où peux bien être le problème. Alors je vais vous montrer le code:
#include<iostream>
using namespace std;
int main()
{
int a,i,z,x,p,b,s,aa,aaa,Saa,edb,sdd,f,d,dm,df,vrm,c,m,vdm,vi;
// Cette partie ci contient le code qui n'a pas besoin d'être retouché
cout<<"Numero du monstre:";
//Le numéro du monstre indique en faire les dommages qu'il va faire... Jusqu'ici pour moi tout est compréhensible, tout va bien.
cin>>m;
//On indique la Variable m; qui est donc le numéro du monstre (1 dans ce cas-ci)
dm=m-d;
//Dommage reçu
if(dm<=0)dm=0;
//On ne peux pas recevoir des dégât négatifs
df=f-(m+2);
//Les dégâts fait au monstre
vdm=m*2+21;
//C'est ici que ça ce complique dans ma tête. Vdm, qui veux dire vie du monstre entier est équivalent à 1, dans ce cas-ci, fois 2, donc 2, + 21, donc 23. Alors la vie du monstre entier est de 23.
vrm=vdm-df;
//Vrm veux dire vie restante au monstre. Donc Vie du monstre entier (vdm) moins les dommages faits (df)
while (vrm>0)
//Tant que la vie restante au monstre est supérieur à 0, la boucle continue
{
cout<<"dommage recu:"<<dm<<endl;
cout<<"Dommage fait:"<<df<<endl;
cout<<"Vie restante:"<<50-dm<<endl;
cout<<"Vie restante au monstre:"<<vrm<<endl;
//La vie restante est donc en fait, vdm-df, mis dans une seule variable
vrm-df;
//On change la variable vrm et on lui enlève les dommage faits (df). Donc dans la prochaine boucle, ça devrait faire à vie restante au monstre: vrm-df et ensuite : (vrm-df)-df, jusqu'à 0.
Cependant, lorsque je lance la boucle, cette dernière descend à l'infini sous 0. Pourquoi?
}
cout<<"vous avez gagne!"<<endl;
system ("Pause");
return 0;
}
Merci de votre aide et de votre compréhension.
A voir également:
- C++, aide pour une boucle
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
1 réponse
Quand tu fais while(vrm>0) tu ne modifies jamais vrm... donc ça tourne en rond !
Tu pourrais faire qqch du genre :
Remarque : dans ton code tes variables ne sont pas initialisées ce qui pose problème :
Tu pourrais faire qqch du genre :
for (vrm=vdm-df; vrm>0; vrm-=df) { cout<<"dommage recu:"<<dm<<endl; cout<<"Dommage fait:"<<df<<endl; cout<<"Vie restante:"<<50-dm<<endl; cout<<"Vie restante au monstre:"<<vrm<<endl; }
Remarque : dans ton code tes variables ne sont pas initialisées ce qui pose problème :
dm=m-d; // que vaut d ? df=f-(m+2); // que vaut f ? // etc...
2.Merci, ca m'a beaucoup aider.. En fait c'est que je m'etais tromper.. C'etait effectivement for qu'il fallait mettre et non while.. C'est plus facile comme ca..