Erreur C debutant

Résolu
evolution -  
 evolution -
Bonjour,
j'apprend à coder en C grâce à notre amis bien connu mateo du site du zero,
J'en suis au c'est plus c'est moi ( je sais c'est pas très loin)
J'explique le but du programme l'ordinateur génère un nombre aléatoire il faut le trouver avec des indication c'est plus ou c'est moin.
bref le programme j'ai réussi a l'écrire, les améliorations comme le compteur de coup et les niveaus de difficulté aussi.
mais j'ai essayer autre chose qui ne marche pas c'est qu'en cas d'erreur de l'utilisateur sur le menu, le menu se réafiche.
j'arrete le suspense voila mon petit code
code block indique que l'erreur au niveau du while ! (peut etre avec le "ou")

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
const int min = 1;
int mystery_number = 0;
int max = 0;
int level = 0;

do
{
printf("1. Bebe\n");
printf("2. facile\n");
printf("3. sucidaire\n");
scanf("%d", &level);

if (level != 1, level != 2, level != 3)
printf("erreur \n");
} while (level=1 || level=2 || level=3);

if (level == 1)
max = 50;
else if (level == 2)
max = 100;
else if (level == 3)
max = 3000;
else
printf("erreur");

printf("\n Objectif: Vous devez trouver un nombre entre 1 et %d \n\n", max);

srand(time(NULL));
mystery_number = (rand() % (max - min + 1 )) + min;

int user_number = 0, shots = 1;

do
{
printf("Quel est le nombre? ");
scanf("%d", &user_number);
printf("\n");

if (user_number > mystery_number)
printf("C'est moin!\n\n");
else if (user_number < mystery_number)
printf("C'est plus! \n\n");
else
printf("Bravo vous avez trouver le nombre mystere en %d coups", shots);

shots++;

}while (user_number != mystery_number);

return 0;
}



2 réponses

supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   193
 
le test doit prendre 2 '=' :

while (level==1 || level==2 || level==3);


;)
1
evolution
 
merci c'etait exact :)
mais le programme ne marche quand meme pas
lorque je met une mauvaise entrée il met deux fois erreur et se fini...
Je vais méditer dessus :/
0
supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   193
 
tu veux qu'il fasse quoi en cas de mauvaise entrée ?
0
evolution
 
qu'il réaffiche le menu et me repropose
de choisir un level
0
evolution
 
j'ai trouver il falais mettre "!=" a la place de " ==" dans le while
0
supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   193
 
dans ce cas il faut une option pour quitter ;)

essaie ça, j'ai modifié légèrement ton code :

main()
{
	const int min = 1;
	int mystery_number = 0;
	int max = 0;
	int level = 0;
	int user_number = 0, shots = 1;

	do
	{
		printf("0. Quitter\n");
		printf("1. Bebe\n");
		printf("2. facile\n");
		printf("3. sucidaire\n");
		scanf("%d", &level);

		if(level == 0) return 0;
		else if (level > 3)
		printf("erreur \n");
	} while (level > 3); // tant que le choix n'est pas dans la liste on demande, sinon on passe à la suite

	if (level == 1)
	max = 50;
	else if (level == 2)
	max = 100;
	else if (level == 3)
	max = 3000;
	else
	{
	printf("erreur");
	return 0;
	}

	printf("\n Objectif: Vous devez trouver un nombre entre 1 et %d \n\n", max);

	srand(time(NULL));
	mystery_number = (rand() % (max - min + 1 )) + min;

	

	do
	{
		printf("Quel est le nombre? ");
		scanf("%d", &user_number);
		printf("\n");

		if (user_number > mystery_number)
		printf("C'est moin!\n\n");
		else if (user_number < mystery_number)
		printf("C'est plus! \n\n");
		else
		printf("Bravo vous avez trouver le nombre mystere en %d coups", shots);

		shots++;

	}while (user_number != mystery_number);

	return 0;
} 
0
evolution
 
merci ;)
0