Probleme de retour de valeur [Résolu]

Signaler
Messages postés
38
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
2 novembre 2005
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Salut!



Bon je veut faire un petit prog en mode console qui fait les statistique d'un lancement de dé.



J'ai commencé le debut:



#include

#include <stdlib.h>

#include <conio.h>

#include <time.h>



int main() {

int nb_lance,compare;

int rslt1,rslt2,rslt3,rslt4,rslt5,rslt6 = 0;

srand((unsigned) time(NULL));

cout<<" ----------------------------------------\n";

cout<<"
|
Lanceur de
d\x82
|\n";

cout<<"
| Pour le cours de
math |\n";

cout<<"
|
|\n";

cout<<" | By Darmoor qu'a rien d'autre \x85 faire |\n";

cout<<" ----------------------------------------\n\n";

cout<<"
Appuyez sur une touche...
\n"<<endl;

getch();

system("CLS");



cout<<"Combien de fois voulez-vous lancer le d\x82? \n"<<endl;

cout<<"R\x82ponse: ";

cin>>nb_lance;

cout<<"\nTu a demand\x82 "<< nb_lance <<" lanc\x82(s) de d\x82.";

cout<<"\n\nAppuyez sur une touche pour lancer le traitement...";

getch();



for(int i = 0;i<nb_lance;i++) {

compare = 1 + rand()%6;

if(compare == 1)

rslt1++;

if(compare == 2)

rslt2++;



if(compare == 3)

rslt3++;



if(compare == 4)

rslt4++;



if(compare == 5)

rslt5++;



if(compare == 6)

rslt6++;



}



cout<<"Resultat sur les "<< nb_lance <<" lanc\x82s effectu\x82s:\n";

cout<<"Face 1: "<< rslt1 <<"\n";

cout<<"Face 2: "<< rslt2 <<"\n";

cout<<"Face 3: "<< rslt3 <<"\n";

cout<<"Face 4: "<< rslt4 <<"\n";

cout<<"Face 5: "<< rslt5 <<"\n";

cout<<"Face 6: "<< rslt6 <<"\n";

getch();



return 0;

}







et le problème c'est que normalement selon ce que je pense (si je ne me
trompe pas...) ca devrai afficher les effectif de chaque face....



MAIS (et oui voila le probleme:p) y a le 1er et le 4eme qui me
fait des mega gros nombre.... et les autre on l'aire cooherent pendant
ce temps là...



Si quelqu'un avait la solution, merci de me signaler :D

13 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
#include
#include <stdlib.h>
#include <conio.h>
#include <time.h>


using namespace std;


int Rslt[5] = {0,0,0,0,0};


int main()
{
int nb_lance,compare;


srand((unsigned) time(NULL));


cout<<" ----------------------------------------\n";
cout<<" | Lanceur de d\x82 |\n";
cout<<" | Pour le cours de math |\n";
cout<<" | |\n";
cout<<" | By Darmoor qu'a rien d'autre \x85 faire |\n";
cout<<" ----------------------------------------\n\n";
cout<<" Appuyez sur une touche... \n"<<endl;
getch();
system("CLS");


cout<<"Combien de fois voulez-vous lancer le d\x82? \n"<<endl;
cout<<"R\x82ponse: ";
cin>>nb_lance;
cout<<"\nTu a demand\x82 "<< nb_lance <<" lanc\x82(s) de d\x82.";
cout<<"\n\nAppuyez sur une touche pour lancer le traitement...";
getch();


for(int i = 0 ; i<nb_lance ; i++)
{
compare = 1 + rand()%6;

switch(compare)
{
case 1:
Rslt[0]++;
break;

case 2:
Rslt[1]++;
break;

case 3:
Rslt[2]++;
break;

case 4:
Rslt[3]++;
break;

case 5:
Rslt[4]++;
break;

case 6:
Rslt[5]++;
break;
}
}
cout << "\n";
for(int j=0; j<= 5; j++)
{
cout << "Face " << j+1 << " : " << Rslt[j] << " fois." << endl;
}



system("pause");


return 0;
}


void Aurevoir( void ); //Bonne journée
Messages postés
38
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
2 novembre 2005

Merci ca marche nikel!!!!!, avant j'avais fait le switch aussi mais avec mes 5 variables...

Mais j'avais po pensé du tout au tableau...



Merci beaucoup pour l'aide;)
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ca marche aussi sans tableau j'pense, c'est juste plus long pour l'affichage...


void Aurevoir( void ); //Bonne journée
Messages postés
38
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
2 novembre 2005

alors d'où venait l'erreur enfait?
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
int rslt1=0,rslt2=0,rslt3=0,rslt4=0,rslt5=0,rslt6 = 0;

Problème d'initialisation


void Aurevoir( void ); //Bonne journée
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
int Rslt[5] = {0}; suffit.

Essayez de ne pas mélanger code C et C++, et aussi de donner des solutions portables.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Euh c'est quoi qui n'est pas portable ???
J'ai jamais rien compris avec cette portabilité lol

Donc je sais pas explik to me :p


void Aurevoir( void ); //Bonne journée
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
system("pause") et system("cls"), ce sont des commandes dos
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
et le switch(compare) est un peu bête, ceci revient au même:

Rslt[compare - 1]++;
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
ah donc on dot portable quand ça ne marche que sur un systeme humHumm
Okay okay, mais quand on fait un programme de ce type ?? lancement dé, c'est vraiment nécessaire lol ?


void Aurevoir( void ); //Bonne journée
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ah merde mais t'es malin en plus lol
J'avais même pas penser


void Aurevoir( void ); //Bonne journée
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
getch aussi n'est pas portable, et cin et cout ce n'est pas forcement clavier et console.

+ mélange de C et de C++, si tu veux etre plus malin lis un cours de C ou de C++
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Vi je veux être malinnnnnnnnnnnnn
Merci du conseil j'apprécie fortement...


void Aurevoir( void ); //Bonne journée