Probleme : fermeture avant l'heure

Signaler
Messages postés
13
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
17 décembre 2005
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Voici mon programme :

#include <ctime>
#include


using namespace std;


int main()
{
int choix_nombre;
{
cout<<" Bienvenu(e)\nAppuyez sur un chiffre pour lancer le programme : ";

int choix_nombre;
{
srand(time(NULL));
choix_nombre=rand()%4;
cin>>choix_nombre;
cin.get();
}
}
int acceuil,proposition;
{

cout<<"\n\nTaper la traduction francaise du nombre suivant : "<<choix_nombre<<" ?"<<endl;
cin>>proposition;
cin.get();
}


int egalite;
{if (choix_nombre 1)egalite 'un';cin>>egalite;if (choix_nombre 2)egalite 'deux';cin>>egalite;if (choix_nombre 3)egalite 'trois';cin>>egalite;if (choix_nombre 4)egalite 'quatre';cin>>egalite;
cin.get();
}
int traitement_reponse;
{
if (egalite==proposition)cout<<"Bien joue";cin.get();
if (egalite!=proposition)cout<<"Dommage!!";cin.get();
return 0;
}
}

Le probleme c'est qu'il se ferme avant d'afficher le résultat
Comment résoudre se probleme

5 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
C'est quoi le langage que tu utillises la ? un nouveau C++ ? Enleve tous ces blocs.



Quand tu fais ca:

int choix_nombre;

{


cout<<"
Bienvenu(e)\nAppuyez sur un chiffre pour lancer le programme : ";



int choix_nombre;

{

srand(time(NULL));

choix_nombre=rand()%4;

cin>>choix_nombre;

cin.get();

}

}



A mon avis, le pc fait pas ce que tu voudrais. Pourquoi tu déclares deux fois choix_nombre ?



Ca, faut m'expliquer aussi:

choix_nombre=rand()%4;


cin>>choix_nombre;


cin.get();



Enfin bref, revoit tout ca. Je reconnais meme pas le C++ la...

Soit je vois pas un truc, soit je te pose la question: qui t'a appris à programmer ?



Aller ++ :)
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
J'avais meme pas vu, mais ca, c'est horrible:



"if (choix_nombre 1)egalite 'un';cin>>egalite;"



Je peux meme pas te donner la version correct, car j'avrive pas à comprendre ce que tu veux faire avec cette ligne.



Faut que tu revois tout depuis le début.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
if (choix_nombre == 1)egalite == 'un';cin>>egalite;
L'instruction egalite == 'un'; me laisse sceptique... en plus des remarques de luhtor! Ya vraiment des problème dans ton programme.
Pour résoudre ton pb de fermeture, ajoute system("pause"); à la fin

Pour répondre a ta question luhtor, je dirais qu'il a appris tout seul :)

Par ailleurs, il me semble que bienvenue prends toujours un e, qu'on s'adresse à un homme ou une femme, ca veut dire je vous souhaite la bienvenue
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ce qui me laisse perplexe aussi. C'est que gcc compile ca. Il affiche
bien des warnings, mais a ce stade, je trouve pas normal qu'il compile
un code pareil.



Il affiche ca notamment: "[Warning] multi-character character constant" pour ca : egalite == 'un'.

Pourquoi c'est interprète pas ca comme une erreur.



Et meme pas un warning comme quoi la variable choix_nombre est masqué ici:

int choix_nombre = 8;

{

int choix_nombre;

{

choix_nombre = 4;

}

}

// ici choix_nombre = 8 et non 4. Et aucun message de gcc pour ca.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
egalite est un entier (4 octets) et 'un' est un entier sur 2 octets (je pense).
Par contre l'instruction ne fait rien, gcc devrait le dire.

Pour le masquage, c'est normal, puisque tu es dans un nouveau bloc. C'est comme si c'était dans un if par exemple