Bug programme
lili000
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai fait un programme ou l'utilisateur doit deviner un nombre compris dans un intervalle,mais ça ne s'execute pas entierement,ça s'arrete à ''Voulez vous reprendre?''et me signale une erreur!!J'espere qu'avec votre aide,je pourrais y voir plus clair.
Voici le programme:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int e,f,h;
int z;
int i=0;
char x[10];
char y[10] ;
char ch;
printf("Donner votre nom\n");
scanf("%s",&x);
printf("Donner votre prenom\n");
scanf("%s",&y);
printf("Entrez une borne inferieure:\n");
scanf("%d",&e);
printf("Entrez une borne superieure :\n");
scanf("%d",&f);
printf("Devinez un nombre compris dans cette intervalle\n");
scanf("%d",&h);
srand(time(NULL));
z=rand()%(f-e)+e;
printf("L'ordinateur a trouve %d\n",z);
if (z==h)
printf("Vous avez gagne!!");
else
{
printf("Vous avez perdu!!\n");
printf("Voulez vous recommencer?\n");
scanf("%c",ch);
while (ch=='o')
{
i=i+1;
printf("Donner votre nom\n");
scanf("%s",&x);
printf("Donner votre prenom\n");
scanf("%s",&y);
printf("Entrez une borne inferieure:\n");
scanf("%d",&e);
printf("Entrez une borne superieure :\n");
scanf("%d",&f);
printf("Devinez un nombre compris dans cette intervalle\n");
scanf("%d",&h);
srand(time(NULL));
z=rand()%(f-e)+e;
printf("L'ordinateur a trouve %d",z);
if (z==h)
printf("Vous avez gagne!!");
else
{
printf("Vous avez perdu!!\n");
printf("Voulez vous recommencer?\n");
scanf("%c",ch);
if(i==10)
printf("Vous avez epuise toutes vos tentatives\n");
}
}
}
return 0;
}
J'ai fait un programme ou l'utilisateur doit deviner un nombre compris dans un intervalle,mais ça ne s'execute pas entierement,ça s'arrete à ''Voulez vous reprendre?''et me signale une erreur!!J'espere qu'avec votre aide,je pourrais y voir plus clair.
Voici le programme:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int e,f,h;
int z;
int i=0;
char x[10];
char y[10] ;
char ch;
printf("Donner votre nom\n");
scanf("%s",&x);
printf("Donner votre prenom\n");
scanf("%s",&y);
printf("Entrez une borne inferieure:\n");
scanf("%d",&e);
printf("Entrez une borne superieure :\n");
scanf("%d",&f);
printf("Devinez un nombre compris dans cette intervalle\n");
scanf("%d",&h);
srand(time(NULL));
z=rand()%(f-e)+e;
printf("L'ordinateur a trouve %d\n",z);
if (z==h)
printf("Vous avez gagne!!");
else
{
printf("Vous avez perdu!!\n");
printf("Voulez vous recommencer?\n");
scanf("%c",ch);
while (ch=='o')
{
i=i+1;
printf("Donner votre nom\n");
scanf("%s",&x);
printf("Donner votre prenom\n");
scanf("%s",&y);
printf("Entrez une borne inferieure:\n");
scanf("%d",&e);
printf("Entrez une borne superieure :\n");
scanf("%d",&f);
printf("Devinez un nombre compris dans cette intervalle\n");
scanf("%d",&h);
srand(time(NULL));
z=rand()%(f-e)+e;
printf("L'ordinateur a trouve %d",z);
if (z==h)
printf("Vous avez gagne!!");
else
{
printf("Vous avez perdu!!\n");
printf("Voulez vous recommencer?\n");
scanf("%c",ch);
if(i==10)
printf("Vous avez epuise toutes vos tentatives\n");
}
}
}
return 0;
}
6 réponses
-
Tu as oublié le plus important, quel est le message d'erreur ?
-
-
Donne la solution pour les prochains qui passeraient par là...
-
Bonjour,
Plusieurs erreurs :
scanf("%s",&x);
=> Il ne faut pas de & devant la variable lorsqu'elle est de type char* pour un %s.
scanf("%c",ch);
Là, il faut un &ch.
De plus, n'oublie pas de mettre un getchar() avant; pour vider le buffer clavier du caractère '\n'.
N'oublie pas le return 0; final.
Et enfin, avec des fonctions, tu gagneras en visibilité.
Cdlt, -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ah bon?C'était pour çela donc que ça ne marchait pas!
Mais, j'ai modifié le programme en changeant la boucle do while par while et d'autres trucs aussi et ça a marché, mais ce n'était pas si nécéssaire en fin de compte.
En tout cas merci beaucoup,je ferais attention à ce genre de trucs la prochaine fois! -
Toutes les erreurs que j'ai signalé n'étaient pas responsables de l'erreur (je pense notamment à la 1ère). Mais, autant tout corrigé :-).
A une prochaine.