Bug programme

Fermé
lili000 - 15 juin 2014 à 19:47
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 25 juin 2014 à 22:30
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 jeudi 29 mai 2014 Statut Membre Dernière intervention 9 août 2014 5
15 juin 2014 à 20:43
Tu as oublié le plus important, quel est le message d'erreur ?
0
j'ai rectifié mon programme,et ça marche!!
Merci quand meme!!
0
isnajdan Messages postés 38 Date d'inscription jeudi 29 mai 2014 Statut Membre Dernière intervention 9 août 2014 5
19 juin 2014 à 15:07
Donne la solution pour les prochains qui passeraient par là...
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
19 juin 2014 à 21:22
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
25 juin 2014 à 22:30
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