Bug programme

lili000 -  
fiddy Messages postés 11653 Statut Contributeur -
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;
}
A voir également:

6 réponses

isnajdan Messages postés 40 Statut Membre 5
 
Tu as oublié le plus important, quel est le message d'erreur ?
0
lili000
 
j'ai rectifié mon programme,et ça marche!!
Merci quand meme!!
0
isnajdan Messages postés 40 Statut Membre 5
 
Donne la solution pour les prochains qui passeraient par là...
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
val123
 
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!
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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.
0