Probleme en language C
Résolu
Problemard
-
Problemard -
Problemard -
Bonjour,
Voila , j'ai tapé ce code :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(int argc, char *argv[])
{
long nombreMystere = 0;
long choix3 = 0;
long conMAX;
long conMIN = 1;
long choix1 = 0;
long choix2;
printf("Bonjour ! Le but est de trouver le nombre mystere : c'est parti !\n");
printf("Genereation du nombre mystere ...\n");
do
{
printf("Choisissez un niveau :\n 1 - Facile ( entre 1 et 100 )\n 2 - Moyen ( entre 1 et 500 )\n 3 - Difficile ( entre 1 et 1000 )\n=== ");
scanf("%ld", &choix2);
if ( choix2 == 1 && choix2 !=3 && choix2 != 2 )
{
printf("Vous avez choisi le niveau 1\n");
conMAX = 100;
}
else if ( choix2 == 2 && choix2 != 3 && choix2 != 1 )
{
printf("Vous avez choisi le niveau 2\n");
conMAX = 500;
}
else if ( choix2 == 3 && choix2 != 1 && choix2 != 2 )
{
printf("Vous avez choisi le niveau 3\n");
conMAX = 1000;
}
do
{
{
printf("Veuillez choisir un nombre : ");
scanf("%ld" , &choix3);
}
srand(time(NULL));
nombreMystere = (rand() % (conMAX - conMIN + 1)) + conMIN;
if ( choix3 < nombreMystere )
printf("Le nombre mystere est plus grand que ca !!\n");
else
if ( choix3 > nombreMystere )
printf("Le nombre mystere est plus petit que ca !!\n");
else
printf("Bravo !!! Vous avez trouve le nombre mystere !!!\n");
}while ( choix3 != nombreMystere );
if ( choix3 == nombreMystere )
{
printf("Voulez-vous rejouer ???\n 1 - Oui\n 2 - Non\n");
scanf("%ld" ,&choix1);
}
else
printf("Veuillez entrer un nombre correct");
} while ( choix1 == 1);
return 0;
}
et je me demandais , le code en lui meme marche , mais si vous pretez attention aux resultats vous y verriez un probleme ...
A vous de voir ..
Merci d'avance ,
cordialement ,¨
Problemard
Voila , j'ai tapé ce code :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(int argc, char *argv[])
{
long nombreMystere = 0;
long choix3 = 0;
long conMAX;
long conMIN = 1;
long choix1 = 0;
long choix2;
printf("Bonjour ! Le but est de trouver le nombre mystere : c'est parti !\n");
printf("Genereation du nombre mystere ...\n");
do
{
printf("Choisissez un niveau :\n 1 - Facile ( entre 1 et 100 )\n 2 - Moyen ( entre 1 et 500 )\n 3 - Difficile ( entre 1 et 1000 )\n=== ");
scanf("%ld", &choix2);
if ( choix2 == 1 && choix2 !=3 && choix2 != 2 )
{
printf("Vous avez choisi le niveau 1\n");
conMAX = 100;
}
else if ( choix2 == 2 && choix2 != 3 && choix2 != 1 )
{
printf("Vous avez choisi le niveau 2\n");
conMAX = 500;
}
else if ( choix2 == 3 && choix2 != 1 && choix2 != 2 )
{
printf("Vous avez choisi le niveau 3\n");
conMAX = 1000;
}
do
{
{
printf("Veuillez choisir un nombre : ");
scanf("%ld" , &choix3);
}
srand(time(NULL));
nombreMystere = (rand() % (conMAX - conMIN + 1)) + conMIN;
if ( choix3 < nombreMystere )
printf("Le nombre mystere est plus grand que ca !!\n");
else
if ( choix3 > nombreMystere )
printf("Le nombre mystere est plus petit que ca !!\n");
else
printf("Bravo !!! Vous avez trouve le nombre mystere !!!\n");
}while ( choix3 != nombreMystere );
if ( choix3 == nombreMystere )
{
printf("Voulez-vous rejouer ???\n 1 - Oui\n 2 - Non\n");
scanf("%ld" ,&choix1);
}
else
printf("Veuillez entrer un nombre correct");
} while ( choix1 == 1);
return 0;
}
et je me demandais , le code en lui meme marche , mais si vous pretez attention aux resultats vous y verriez un probleme ...
A vous de voir ..
Merci d'avance ,
cordialement ,¨
Problemard
A voir également:
- Probleme en language C
- Vistalizator language pack windows 7 - Télécharger - Traduction
- Windows display language french - Guide
- Autocad 2008 language pack french - Forum AutoCAD
- The language dll vb6fr.dll could not be found - Forum Windows
- Desmume change language - Forum Jeux vidéo
3 réponses
À quoi ça sert de dire if ( choix2 == 1 && choix2 !=3 && choix2 != 2 ) ?
Si choix2==1, il est forcement différent de 2 et de 3.
Là, c'est pareil :
}while ( choix3 != nombreMystere );
if ( choix3 == nombreMystere )
{
choix3 est forcement égal à nombreMystere.
Si choix2==1, il est forcement différent de 2 et de 3.
Là, c'est pareil :
}while ( choix3 != nombreMystere );
if ( choix3 == nombreMystere )
{
choix3 est forcement égal à nombreMystere.
Salut,
En effet, beaucoup de redondance dans les conditions.
En plus ton srand(time(NULL)) ainsi que le calcul de "nombreMystere" sont définis dans ta boucle do-while, donc exécutés à chaque itération.
Voici ton programme corrigé :
Cdlt
En effet, beaucoup de redondance dans les conditions.
En plus ton srand(time(NULL)) ainsi que le calcul de "nombreMystere" sont définis dans ta boucle do-while, donc exécutés à chaque itération.
Voici ton programme corrigé :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
long nombreMystere = 0;
long choix3 = 0;
long conMAX;
long conMIN = 1;
long choix1 = 0;
long choix2;
printf("Bonjour ! Le but est de trouver le nombre mystere : c'est parti !\n");
printf("Genereation du nombre mystere ...\n");
do
{
printf("Choisissez un niveau :\n 1 - Facile ( entre 1 et 100 )\n 2 - Moyen ( entre 1 et 500 )\n 3 - Difficile ( entre 1 et 1000 )\n=== ");
scanf("%ld", &choix2);
switch(choix2) {
case 1:
printf("Vous avez choisi le niveau 1\n");
conMAX = 100;
break;
case 2:
printf("Vous avez choisi le niveau 2\n");
conMAX = 500;
break;
case 3:
printf("Vous avez choisi le niveau 3\n");
conMAX = 1000;
break;
}
srand(time(NULL));
nombreMystere = (rand() % (conMAX - conMIN + 1)) + conMIN;
do
{
printf("Veuillez choisir un nombre : ");
scanf("%ld" , &choix3);
if (choix3 < nombreMystere)
printf("Le nombre mystere est plus grand que ca !!\n");
else if (choix3 > nombreMystere)
printf("Le nombre mystere est plus petit que ca !!\n");
else
printf("Bravo !!! Vous avez trouve le nombre mystere !!!\n");
}while (choix3 != nombreMystere);
do {
printf("Voulez-vous rejouer ???\n 1 - Oui\n 2 - Non\n");
scanf("%ld" ,&choix1);
switch(choix1) {
case 1:
break;
case 2:
return 0;
default:
choix1=-1;
printf("Veuillez entrer un nombre correct\n");
}
} while(choix1==-1);
} while ( choix1 == 1);
return 0;
}
Cdlt