Bug programme

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

  1. Contributeur
    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.
    1. 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!
      1. Contributeur
        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,
        1. Donne la solution pour les prochains qui passeraient par là...
          1. Tu as oublié le plus important, quel est le message d'erreur ?