CRASH dans mon projet
InYourFaceHD
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
voila, j'ai un probleme avec ce programme que j'ai codé avec code::Blocks 16.01,
il crash dès que l'on selectionne la difficulté
merci d'avance !
voila, j'ai un probleme avec ce programme que j'ai codé avec code::Blocks 16.01,
il crash dès que l'on selectionne la difficulté
merci d'avance !
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int reponse = 0;
srand(time(NULL));
int NombreDeCoups = 0, nombreMystere = 0, choixDifficulte = 0;
int MAX = 0, MIN = 0;
printf("\n1 = entre 1 et 100");
printf("\n2 = entre 1 et 1000");
printf("\n2 = entre 1 et 10000\n");
scanf("%d",choixDifficulte);
switch (choixDifficulte)
{
case 1:
MAX = 100, MIN = 1;
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("Votre but est de trouver le nombre mystere ! bonne chance !");
while(reponse != nombreMystere)
{
printf("choisissez un nombre !");
scanf("%d", &reponse);
if (reponse == nombreMystere)
{
printf("tu as gagne!");
}
else if (reponse > nombreMystere)
{
printf("c'est moins !");
}
else if (reponse < nombreMystere)
{
printf("c'est plus !");
NombreDeCoups++;
}
}
printf ("\n tu as trouve en %d coups",NombreDeCoups);
break;
case 2:
MAX = 1000, MIN = 1;
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
reponse = 1;
printf("Votre but est de trouver le nombre mystere ! bonne chance !");
while(reponse != nombreMystere)
{
printf("choisissez un nombre !");
scanf("%d", &reponse);
if (reponse == nombreMystere)
{
printf("tu as gagne!");
}
else if (reponse > nombreMystere)
{
printf("c'est moins !");
}
else if (reponse < nombreMystere)
{
printf("c'est plus !");
NombreDeCoups++;
}
}
printf ("\n tu as trouve en %d coups",NombreDeCoups);
break;
case 3:
MAX = 10000, MIN = 1;
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("Votre but est de trouver le nombre mystere ! bonne chance !");
while(reponse != nombreMystere)
{
printf("choisissez un nombre !");
scanf("%d", &reponse);
if (reponse == nombreMystere)
{
printf("tu as gagne!");
}
else if (reponse > nombreMystere)
{
printf("c'est moins !");
}
else if (reponse < nombreMystere)
{
printf("c'est plus !");
NombreDeCoups++;
}
}
printf ("\n tu as trouve en %d coups",NombreDeCoups);
break;
default:
printf("choisissez un chiffre entre 1 et 3 svp !");
scanf("%d",choixDifficulte);
}
}
A voir également:
- CRASH dans mon projet
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- Windows crash - Guide
- Projet x streaming vf - Forum MacOS
- Lol crash au lancement de la partie - Forum Jeux PC
1 réponse
Salut,
En compilant avec les warnings, gcc se plaint de deux lignes où tu utilises
Tu dois passer un pointeur à
Je n'ai pas regardé le reste du code, cependant, tu dupliques beaucoup de code dans ton switch / case. Tu aurais intérêt à créer une fonction, appelée par le switch / case avec les paramètres appropriés.
Ce n'est pas parce que ton code compile qu'il est correct. Les warnings signalent des situations anormales, non conformes aux standards ou dangereuses et signalent des bogues dans la quasi-totalité des cas. Compile toujours avec les warnings, comprend la raison de chaque warning et élimine leur cause.
Le dernier warning est parce qu'il manque
De même, tu devrais changer ton prototype de
Dal
En compilant avec les warnings, gcc se plaint de deux lignes où tu utilises
scanf():
$ gcc -Wall inyourfacehd.c
inyourfacehd.c: In function ‘main’:
inyourfacehd.c:14:2: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d",choixDifficulte);
^
inyourfacehd.c:106:4: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d",choixDifficulte);
^
inyourfacehd.c:109:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Tu dois passer un pointeur à
scanf(), donc
&choixDifficulteet non pas
choixDifficulte.
Je n'ai pas regardé le reste du code, cependant, tu dupliques beaucoup de code dans ton switch / case. Tu aurais intérêt à créer une fonction, appelée par le switch / case avec les paramètres appropriés.
Ce n'est pas parce que ton code compile qu'il est correct. Les warnings signalent des situations anormales, non conformes aux standards ou dangereuses et signalent des bogues dans la quasi-totalité des cas. Compile toujours avec les warnings, comprend la raison de chaque warning et élimine leur cause.
Le dernier warning est parce qu'il manque
return 0;avant l'accolade fermante de ta fonction
main().
De même, tu devrais changer ton prototype de
int main()en
int main(void)pour signifier que tu n'utilises pas des arguments de ligne de commande sur ton programmes.
Dal