y'a et puis y'a plus!!??

y'a et puis y'a plus!!?? - C - Programmation

Marsh Posté le 31-10-2005 à 00:31:16    

Voilà j'ai bientôt fini mon programme et dans celui-ci j'utilise un tableau que j'initialise avec 0(ainsi toutes les autres se mettent aussi à 0) :ange:  
Pour l'instant tout vas bien.
Je saisi un mot dont chaque lettre change le zéro de la case concerné du tableau précédent!
Tout va bien pour le meilleur des mondes, pour l'instant! :jap:  
 
Puis j'utilise un tableau pour savoir si la lettre -que jai saisie par la suite- a déjà été utilisé ou non lors d'une précédente saisie( à condition que le mot possède cette lettre).J'utilise un autre tableau pour mémoriser toutes les lettres trouvées et ainsi pour pouvoir toutes les afficher par la suite. Ces deux autres tableaux sont initialisés comme le 1er.
 
Mais la 1ère lettre du mot une fois trouvée ne se réaffiche plus pour les prochaînes saisies/recherches.Or je n'ai pas donné l'ordre d'effacer la case 0 du troisième tableau. :heink:  
Et si cette lettre existe en plusieurs exemplaire, l'ordi l'affiche mais pas en un seul exemplaire mais en deux!!?? :ouch:  :pt1cable:  :pt1cable:  
 
Savez-vous d'où viens ce problème? Aidez moi s'il vous plaît!!

Reply

Marsh Posté le 31-10-2005 à 00:31:16   

Reply

Marsh Posté le 31-10-2005 à 00:32:31    

et le code ...

Reply

Marsh Posté le 02-11-2005 à 18:03:10    

int paserreur=0;//variable qui sert à savoir si la lettre entrée est dans le mot ou non après la recherche.
int i;//int permettant avec nbr_ de savoir combien il faut afficher de "_".
int nbr_=0;//en fonction du nombre de lettre du mot saisi.
char mot[motmax]={0};//Tableau qui contient toutes les lettres du mot à rechercher.
int vu[motmax]={0};// evite d'effacer les lettres déjà trouvées.
char trouve[motmax]={0};//tableau contenant les lettres déjà trouvées.
char recherche;// lettre à vérifier dans le tableau: existante ou non.
char dessin=0;// char pour l'affichage du pendu.
 

Code :
  1. for(i=0;i<26;i++)//Supprime la lettre saisie au bon endroit du tableau alphabet.
  2.                         {
  3.                            if(alphabet[i]==recherche)
  4.                            {
  5.                             alphabet[i]=0;                       
  6.                            }             
  7.                         }
  8.                        
  9.                         for(i=0;i<nbr_;i++)//Fonction Recherche.
  10.                         {
  11.                            if(mot[i]==recherche)//La lettre existe dans le mot dans la case i.
  12.                            {     
  13.                                   printf("%s",&recherche);
  14.                                   if(vu[i]==0)//La lettre juste trouvée pour la première fois augmente fini.
  15.                                   {
  16.                                       fini++;
  17.                                   }
  18.                                   paserreur=1;
  19.                                   trouve[i]=recherche;
  20.                                   vu[i]=1;   
  21.                            }
  22.                            else
  23.                            {
  24.                                   if(vu[i]!=1)//La lettre n'a pas été découverte.
  25.                                   {
  26.                                     printf("_ " );
  27.                                   }
  28.                                   else//La lettre à cet emplacement a déjà été trouvée dans une saisie précédente.
  29.                                   {  //Par conséquent elle affiche cette lettre.  
  30.                                     printf("%c",trouve[i]);
  31.                                   }//Fin else imbriqué.
  32.                            }//Fin else.
  33.                         }//Fin for pour la recherche.

Reply

Marsh Posté le 03-11-2005 à 23:08:26    

Bon je capte rien a ton code, tu aurais du mettre ton programme entier.
Je suppose qu'il s'agit d'un jeu de pendu, mais ca serait pas mal que tu mettes ton code complet, avec la methode que tu utilises pour entrer le mot a trouver, et la facon de demander des lettres a l'utilisateur.
 
En tout cas, y'a une ligne de code qui va pas :
 
printf("%s",&recherche);
 
'recherche' est un char, et le printf va afficher des données tant qu'il ne trouve pas un 0x00 en memoire. En l'occurence cette ligne marche tant que ta variable 'dessin' (qui est la case memoire suivante dans l'espace d'adressage ) est a 0.
 
Remplace donc ton printf("%s",&recherche); par printf("%c",recherche);


Message édité par nlc le 03-11-2005 à 23:09:24

---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed