Problème dans une fonction saisie
Hors ligneTranenengel Le 14/06/2008 à 18:43 Profil de Tranenengel Configuration de Tranenengel

Bonjour

J'ai un problème dans une fonction saisie en C.
Voici le problème:
Je pars d'un tableau 5x5 cases remplis par des +,- et =.
Il y a donc en tout 9 variables que j'appelle (A,B,C,D,E,F,G,H,I). Le joueur au moment de la saisie doit entrer 3 valeurs les autres qui sont inconnues sont mises a -1.
La fonction saisie fonctionne mais j'aurais voulue l'améliorer par exemple si le joueur entre plus de 3 chiffres ou moins de 3 chiffres sa se remet au début .

Voici ce que j'ai fait:


int saisie_tableau (int*A, int*B, int*C, int*D, int*E, int*F, int*G, int*H, int*I){
int x=0,y=0,z=0,w=0,l=0,t=0,v=0,k=0,s=0;
    printf("[A] [+] [B] [=] [C]\n");
    printf("[-] [¤] [+] [¤] [-]\n");
    printf("[D] [+] [E] [=] [F]\n");
    printf("[=] [¤] [=] [¤] [=]\n");
    printf("[G] [-] [H] [=] [I]\n");
    printf("Pour jouer il suffit de compléter le tableau avec 3 chiffres différents lorsque le chiffre est inconnu tapez -1\n");
    printf("Entrez la valeur de A\n");
    scanf("%i", A);
    printf("Entrez la valeur de B\n");
    scanf("%i", B);
    printf("Entrez la valeur de C\n");
    scanf("%i", C);
    printf("Entrez la valeur de D\n");
    scanf("%i", D);
    printf("Entrez la valeur de E\n");
    scanf("%i", E);
    printf("Entrez la valeur de F\n");
    scanf("%i", F);
    printf("Entrez la valeur de G\n");
    scanf("%i", G);
    printf("Entrez la valeur de H\n");
    scanf("%i", H);
    printf("Entrez la valeur de I\n");
    scanf("%i", I);
    if(A>=0){ x=x+1; printf("x %i",x); }else{ x=0; printf("a %i",x);}
   if(B>=0){ y=x+1; printf("y %i",y);}else{ y=x;}
   if(C>=0){ z=y+1; printf("z %i",z);}else{ z=y;}
   if(D>=0){ w=z+1; printf("w %i",w);}else{ w=z;}
   if(E>=0){ t=w+1; printf("t %i",t);}else{ t=w;}
   if(F>=0){ s=t+1; printf("s %i",s);}else{ s=t;}
   if(G>=0){ v=s+1; printf("v %i",v);}else{ v=s;}
   if(H>=0){ k=v+1; printf("k %i",k);}else{ k=v;}
   if(I>=0){ l=k+1; printf("l %i",l);}else{ l=k;}
   if(l!=3){ printf("Error System\n");}
  saisie_tableau(&A,&B,&C,&D,&E,&F,&G,&H,&I);
   system("clear");
}

Le problème c'est que le if n'est pas respecter et donc l'incrémentation ce fait tout le temps et j'avoue ne pas comprendre pourquoi. les printf servent a voir si l'incrémentation se fait correctement.
Ensuite j'aurais voulu empêcher le joueur d'entrer des lettres j'avais essayer avec des boucles while mais sa ne fonctionne pas
voici ce que j'avais fait:

    while(A!=0||A!=1||A!=2||A!=3||A!=4||A!=5||A!=6||A!=7||A!=8||A!=9||A!=-1){
    printf("Entrez la valeur de A\n");
    scanf("%i", A);
};


si vous avez des idées ou des suggestions n'hésitez pas à me le dire.

Merci
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels