Bug programme

lili000 -  
fiddy Messages postés 11069 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;
}

6 réponses

isnajdan Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   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 38 Date d'inscription   Statut Membre Dernière intervention   5
 
Donne la solution pour les prochains qui passeraient par là...
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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