Probleme : fermeture avant l'heure

Mc n1c1 Messages postés 13 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 17 décembre 2005 - 3 déc. 2005 à 14:10
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 3 déc. 2005 à 16:03
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 déc. 2005 à 14:32
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 ++ :)
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 déc. 2005 à 14:36
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.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 déc. 2005 à 14:38
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
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
3 déc. 2005 à 15:22
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.
0

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

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
3 déc. 2005 à 16:03
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
0
Rejoignez-nous