Probleme de retour de valeur

Résolu
darmoor Messages postés 38 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 2 novembre 2005 - 25 mai 2005 à 18:13
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 - 26 mai 2005 à 19:11
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

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
25 mai 2005 à 20:09
#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
3
darmoor Messages postés 38 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 2 novembre 2005
25 mai 2005 à 20:23
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;)
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
25 mai 2005 à 20:34
Ca marche aussi sans tableau j'pense, c'est juste plus long pour l'affichage...


void Aurevoir( void ); //Bonne journée
0
darmoor Messages postés 38 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 2 novembre 2005
25 mai 2005 à 22:14
alors d'où venait l'erreur enfait?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
25 mai 2005 à 22:58
int rslt1=0,rslt2=0,rslt3=0,rslt4=0,rslt5=0,rslt6 = 0;

Problème d'initialisation


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

Essayez de ne pas mélanger code C et C++, et aussi de donner des solutions portables.
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
26 mai 2005 à 11:36
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
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 mai 2005 à 11:53
system("pause") et system("cls"), ce sont des commandes dos
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 mai 2005 à 11:56
et le switch(compare) est un peu bête, ceci revient au même:

Rslt[compare - 1]++;
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
26 mai 2005 à 11:58
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
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
26 mai 2005 à 11:59
Ah merde mais t'es malin en plus lol
J'avais même pas penser


void Aurevoir( void ); //Bonne journée
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
26 mai 2005 à 18:50
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++
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
26 mai 2005 à 19:11
Vi je veux être malinnnnnnnnnnnnn
Merci du conseil j'apprécie fortement...


void Aurevoir( void ); //Bonne journée
0
Rejoignez-nous