C
Résolu
Utilisateur anonyme
-
14MOMO14 Messages postés 1297 Date d'inscription Statut Membre Dernière intervention -
14MOMO14 Messages postés 1297 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je ne trouve pas l'erreur que j'ai pour le menu. Quelqu'un peut-il m'aider?
Merci.
//Plus ou Moins
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0;
const int MAX = 100, MIN = 1;
int menu=0;
int tab[5];
int nbPartieJouer=0;
int i=0;
int resultat=0;
int nbEncode=1;
while(i<5)
{
tab[i]=0;
i++;
}
while(menu<1||menu>4)
{
printf("|-----------------------MENU-------------------------|\n");
printf("|1.Demarrer une nouvelle série |\n");
printf("|2.Afficher l'historique de la série en cours |\n");
printf("|3.Nouveau tirage dans la série en cours |\n");
printf("|4.Quitter le programme |\n");
printf("|----------------------------------------------------|\n");
printf("\n");
scanf("%d" , &menu);
printf("\n");
}
while(menu!=4||menu !=2)
{
if (menu==1);
{
while(i<5)
{
tab[i]=0;
i++;
}
nbPartieJouer=0;
}
// Génération du nombre aléatoire
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("%d\n",nombreMystere);
/* La boucle du programme. Elle se répète tant que l'utilisateur
n'a pas trouvé le nombre mystère */
do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
// On compare le nombre entré avec le nombre mystère
if (nombreMystere > nombreEntre)
{
printf("C'est plus !\n\n");
nbEncode++;
printf("Nombre de nombre encode:%d\n",nbEncode);
}
else if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n\n");
nbEncode++;
printf("Nombre de nombre encode:%d\n",nbEncode);
}
else
{
printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
printf("Nombre de nombre encode:%d\n",nbEncode);
}
} while (nombreEntre != nombreMystere);
nbPartieJouer++;
printf("Nombre de partie jouer: %d\n" ,nbPartieJouer);
menu=0;
while(menu<1||menu>4)
{
printf("|-----------------------MENU-------------------------|\n");
printf("|1.Demarrer une nouvelle série |\n");
printf("|2.Afficher l'historique de la série en cours |\n");
printf("|3.Nouveau tirage dans la série en cours |\n");
printf("|4.Quitter le programme |\n");
printf("|----------------------------------------------------|\n");
printf("\n");
scanf("%d" , &menu);
printf("\n");
}
}
if(menu==2)
{
while(i<5)
{
printf("%d\n",tab[i]);
i++;
}
}
if (menu==4)
printf("aurevoir");
return 0;
}
Merci.
//Plus ou Moins
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0;
const int MAX = 100, MIN = 1;
int menu=0;
int tab[5];
int nbPartieJouer=0;
int i=0;
int resultat=0;
int nbEncode=1;
while(i<5)
{
tab[i]=0;
i++;
}
while(menu<1||menu>4)
{
printf("|-----------------------MENU-------------------------|\n");
printf("|1.Demarrer une nouvelle série |\n");
printf("|2.Afficher l'historique de la série en cours |\n");
printf("|3.Nouveau tirage dans la série en cours |\n");
printf("|4.Quitter le programme |\n");
printf("|----------------------------------------------------|\n");
printf("\n");
scanf("%d" , &menu);
printf("\n");
}
while(menu!=4||menu !=2)
{
if (menu==1);
{
while(i<5)
{
tab[i]=0;
i++;
}
nbPartieJouer=0;
}
// Génération du nombre aléatoire
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("%d\n",nombreMystere);
/* La boucle du programme. Elle se répète tant que l'utilisateur
n'a pas trouvé le nombre mystère */
do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
// On compare le nombre entré avec le nombre mystère
if (nombreMystere > nombreEntre)
{
printf("C'est plus !\n\n");
nbEncode++;
printf("Nombre de nombre encode:%d\n",nbEncode);
}
else if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n\n");
nbEncode++;
printf("Nombre de nombre encode:%d\n",nbEncode);
}
else
{
printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
printf("Nombre de nombre encode:%d\n",nbEncode);
}
} while (nombreEntre != nombreMystere);
nbPartieJouer++;
printf("Nombre de partie jouer: %d\n" ,nbPartieJouer);
menu=0;
while(menu<1||menu>4)
{
printf("|-----------------------MENU-------------------------|\n");
printf("|1.Demarrer une nouvelle série |\n");
printf("|2.Afficher l'historique de la série en cours |\n");
printf("|3.Nouveau tirage dans la série en cours |\n");
printf("|4.Quitter le programme |\n");
printf("|----------------------------------------------------|\n");
printf("\n");
scanf("%d" , &menu);
printf("\n");
}
}
if(menu==2)
{
while(i<5)
{
printf("%d\n",tab[i]);
i++;
}
}
if (menu==4)
printf("aurevoir");
return 0;
}
4 réponses
Salut,
Pour commencer, penses a utiliser la balise < code > autour de ton code pour la lisibilite...
Attention ici : tu vas rentrer dans la boucle si menu = 2 car la première condition sera verifiée (2 != 4), et que tu as mis un "OU" entre les deux conditions de ton while.
Il en va de même pour menu = 4 puisque la deuxième condition sera verifiée (4 != 2).
Si tu ne veux pas rentrer dans cette condition avec 2 ou 4 il faut mettre && et pas || entre tes deux conditions, pour etre sur de ne laisser boucler que sur 1 et 3.
Si c'est encore autre chose, alors précises ton problème, tes cas d'erreurs..
Pour commencer, penses a utiliser la balise < code > autour de ton code pour la lisibilite...
while(menu!=4||menu !=2)
Attention ici : tu vas rentrer dans la boucle si menu = 2 car la première condition sera verifiée (2 != 4), et que tu as mis un "OU" entre les deux conditions de ton while.
Il en va de même pour menu = 4 puisque la deuxième condition sera verifiée (4 != 2).
Si tu ne veux pas rentrer dans cette condition avec 2 ou 4 il faut mettre && et pas || entre tes deux conditions, pour etre sur de ne laisser boucler que sur 1 et 3.
Si c'est encore autre chose, alors précises ton problème, tes cas d'erreurs..
Bonjour, Il y a toujours un problème quand on entre 2 ou 4 l'invite de commande ce ferme directement et n'affiche pas le tableau ou la phrase. Pouvez-vous m'aider?
Merci.
Merci.
//Plus ou Moins #include <stdio.h> #include <stdlib.h> #include <time.h> int main ( int argc, char** argv ) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 100, MIN = 1; int menu=0; int tab[5]; int nbPartieJouer=0; int i=0; int resultat=0; int nbEncode=1; while(i<5) { tab[i]=0; i++; } while(menu<1||menu>4) { printf("|-----------------------MENU-------------------------|\n"); printf("|1.Demarrer une nouvelle série |\n"); printf("|2.Afficher l'historique de la série en cours |\n"); printf("|3.Nouveau tirage dans la série en cours |\n"); printf("|4.Quitter le programme |\n"); printf("|----------------------------------------------------|\n"); printf("\n"); scanf("%d" , &menu); printf("\n"); } while(menu!=4 && menu !=2) { if (menu==1); { while(i<5) { tab[i]=0; i++; } nbPartieJouer=0; } // Génération du nombre aléatoire srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; printf("%d\n",nombreMystere); /* La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère */ do { // On demande le nombre printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); // On compare le nombre entré avec le nombre mystère if (nombreMystere > nombreEntre) { printf("C'est plus !\n\n"); nbEncode++; printf("Nombre de nombre encode:%d\n",nbEncode); } else if (nombreMystere < nombreEntre) { printf("C'est moins !\n\n"); nbEncode++; printf("Nombre de nombre encode:%d\n",nbEncode); } else { printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); printf("Nombre de nombre encode:%d\n",nbEncode); } } while (nombreEntre != nombreMystere); nbPartieJouer++; printf("Nombre de partie jouer: %d\n" ,nbPartieJouer); menu=0; while(menu<1 || menu>4) { printf("|-----------------------MENU-------------------------|\n"); printf("|1.Demarrer une nouvelle série |\n"); printf("|2.Afficher l'historique de la série en cours |\n"); printf("|3.Nouveau tirage dans la série en cours |\n"); printf("|4.Quitter le programme |\n"); printf("|----------------------------------------------------|\n"); printf("\n"); scanf("%d" , &menu); printf("\n"); } } if(menu==2) { i=0; while(i<5) { printf("%d\n",tab[i]); i++; } } if (menu==4) printf("aurevoir"); return 0; }
si je comprend bien, tu lances ton programme .exe qui t'ouvre une nouvelle fenetre avec une invite de commande?
Tu as deux choix pour éviter que ta fenetre se ferme immédiatement sans que tu aies le temps de voir ce qui s'écrit :
Soit tu rajouter a la fin de ton code
pour dire au système d'attendre un signal avant de se fermer,
Soit tu lance ton application directement à partir d'une invite de commande.
Verifies déjà si tes problèmes sont résolus en ajoutant le code précisé a la fin de ton code :
Tu as deux choix pour éviter que ta fenetre se ferme immédiatement sans que tu aies le temps de voir ce qui s'écrit :
Soit tu rajouter a la fin de ton code
system("pause");
pour dire au système d'attendre un signal avant de se fermer,
Soit tu lance ton application directement à partir d'une invite de commande.
Verifies déjà si tes problèmes sont résolus en ajoutant le code précisé a la fin de ton code :
if (menu==4) printf("aurevoir"); return 0; } system("pause");