Partage
  • Partager sur Facebook
  • Partager sur Twitter

Error début et fin

Sujet résolu
    12 mai 2019 à 13:15:48

    Bonjour je développe en C un petit hexadoku (projet) cependant j'ai un soucis dans un système d'aide une erreur mystérieuse

    void Aide(TGrille3D grille3D,
    				 const int GTaille,
    				 const int RTaille,
    				 const char *symboles, const int nbsymboles,const int lignes, const int colonnes,int *Scores)
    {
        int choixAide = 0;
        int ligne=0;
                puts("0-Retour");
                puts("1-Affiche la grille de possibilite");
                puts("2-Affiche une ligne ou une colonne");
                puts("3-Grille de possibilite pour un symbole");
                puts("4-Afficher une case de la grille des possibilite");
                puts("5-Afficher les coordonees de la case avec le moins de possibilite");
                puts("6-Roulette(aide aleatoire)");
                choixAide = saisieDeuxConditions(0,6);
            switch(choixAide)
            {
                case 1:
                    afficheGrillePossibilites(grille3D,GTaille,RTaille,symboles,nbsymboles);//affiche la grille de possibilit
                    Calcul(&Score,-3);
                break;
    
                case 2:
                    puts("1-Lignes");
                    puts("2-Colonnes");
                        ligne = saisieDeuxConditions(1,2);
                        if(ligne==1)
                            {
    
                                ChercheLigne(grille3D,GTaille,RTaille,symboles,nbsymboles);
                            }
                            else if(ligne==2)
                            {
                                ChercheColonne(grille3D,GTaille,RTaille,symboles,nbsymboles);
                            }
                            Calcul(&Score,-2);
                break;
                case 3:
                   AffichagePossibiliteSymboles(grille3D,lignes,colonnes,GTaille);
                   Calcul(&Score,-1);
                break;
                case 4:
                    AfficherCase(grille3D,GTaille,RTaille,symboles,nbsymboles);
                    Calcul(&Score,-2);
                break;
                case 5:
                    AfficheCoordonnes(grille3D,GTaille);
                    Calcul(&Score,-2);
                break;
                case 6:
                    Calcul(&Score,-2);
                    TirageAide(grille3D,GTaille,RTaille,symboles,nbsymboles,lignes,lignes);
                break;
            }
        }
    

    et le code d'erreur 

    error expected '=', ',', ';', 'asm' or '__attribute__ before '{' token

    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2019 à 13:58:13

      Bonjour ! N'oublie pas d'indiquer quelle est la ligne concernée par le message d'erreur.
      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2019 à 14:27:26

        Hello,

        Rien à voir avec ta question.

        Scores est un pointeur. Lignes 20, 36 et autres: dois-tu vraiment passer l'adresse d'un pointeur à ta fonction Calcul() (dont le nom n'est pas vraiment explicite) ?

        Autre chose: je trouve que la fonction Aide() reçoit beaucoup de paramètres. Ne pourrais-pu pas les regrouper dans des structures ? Par exemple, les 3 premiers concernent ta grille, tu pourrais avoir

        struct grille_3D {
            Tgrille3D grille3D;
            int Gtaille;
            int Rtaille;
        };

        Ça ne fait plus qu'un seul paramètre à passer.

        Et de la même manière, tu pourrais avoir

        struct symboles {
            int nsymboles;
            char *symboles;    // ou char symboles[....] suivant le cas
        };
        
        // et
        
        struct coordonnees {
            int ligne;
            int colonne;
        };
        
        

        -
        Edité par edgarjacobs 12 mai 2019 à 14:45:14

        • Partager sur Facebook
        • Partager sur Twitter

        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          12 mai 2019 à 16:06:16

          edgarjacobs a écrit:

          Hello,

          Rien à voir avec ta question.

          Scores est un pointeur. Lignes 20, 36 et autres: dois-tu vraiment passer l'adresse d'un pointeur à ta fonction Calcul() (dont le nom n'est pas vraiment explicite) ?

          Autre chose: je trouve que la fonction Aide() reçoit beaucoup de paramètres. Ne pourrais-pu pas les regrouper dans des structures ? Par exemple, les 3 premiers concernent ta grille, tu pourrais avoir

          struct grille_3D {
              Tgrille3D grille3D;
              int Gtaille;
              int Rtaille;
          };

          Ça ne fait plus qu'un seul paramètre à passer.

          Et de la même manière, tu pourrais avoir

          struct symboles {
              int nsymboles;
              char *symboles;    // ou char symboles[....] suivant le cas
          };
          
          // et
          
          struct coordonnees {
              int ligne;
              int colonne;
          };
          
          

          -
          Edité par edgarjacobs il y a environ 1 heure

          Sans mentir je n'es pas créer ces variables , elles ont étais créer par mon professeur ^^' , il est vrai que je n'y es pas penser ^^ la ligne concernée, l'erreur est noté sur la lignes 5 .. je ne comprend pas vraiment pourquoi , pour la partie concernant le pointeur je n'es pas compris , excuse moi ^^



          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2019 à 15:55:37

            Si l'erreur est indiquée ligne 5 c'est que :
            - ce n'est pas la première erreur, et il faut corriger les erreurs précédente pour la faire disparaître.
            - ou bien c'est la première erreur et là aussi il faut regarder le code qui est avant cette définition de fonction (en incluant tous les éventuels #include)
            - ou autre possibilité Aide a été défini avant comme autre chose qu'une fonction.
            Il faudrait que tu nous fournisse ce qui est avant.
            Cela est surement dû à un ; manquant avant, mais où?

            Quant au pointeur Score, il pointe sur un entier (c'est donc l'adresse d'un entier.) La fonction Calcul s'attend à recevoir un pointeur sur un entier, donc on doit passer en lui premier paramètre Score et surtout pas &Score car &Score c'est l'adresse de l'adresse d'un entier! Est-ce plus clair?

            • Partager sur Facebook
            • Partager sur Twitter

            En recherche d'emploi.

              14 mai 2019 à 15:41:50

              J'ai fais divers test pour voir d'ou provenais l'erreur et j'ai remarquer quelque choses.

              #include <stdio.h>
              #include <stdlib.h>
              #include <unistd.h>
              #include <time.h>
              
              #include "constante.h"
              #include "Affichage.h"
              #include "Conversion.h"
              #include "ligne.h"
              #include "colonne.h"
              #include "parSymbole.h"
              #include "SaisieDurcie.h"
              #include "AfficherCase.h"
              #include "CoordonneesCase.h"
              
              void Aide(TGrille3D grille3D,
              				 const int GTaille,
              				 const int RTaille,
              				 const char *symboles, const int nbsymboles,const int lignes, const int colonnes)
              {
                  int choixAide = 0;
                  int ligne=0;
                          puts("0-Retour");
                          puts("1-Affiche la grille de possibilite");
                          puts("2-Affiche une ligne ou une colonne");
                          puts("3-Grille de possibilite pour un symbole");
                          puts("4-Afficher une case de la grille des possibilite");
                          puts("5-Afficher les coordonees de la case avec le moins de possibilite");
                          puts("6-Roulette(aide aleatoire)");
                          choixAide = saisieDeuxConditions(0,6);
                      switch(choixAide)
                      {
                          case 1:
                              afficheGrillePossibilites(grille3D,GTaille,RTaille,symboles,nbsymboles);//affiche la grille de possi
                          break;
              
                          case 2:
                              puts("1-Lignes");
                              puts("2-Colonnes");
                                  ligne = saisieDeuxConditions(1,2);
                                  if(ligne==1)
                                      {
              
                                          ChercheLigne(grille3D,GTaille,RTaille,symboles,nbsymboles);
                                      }
                                      else if(ligne==2)
                                      {
                                          ChercheColonne(grille3D,GTaille,RTaille,symboles,nbsymboles);
                                      }
                          break;
                          case 3:
                             AffichagePossibiliteSymboles(grille3D,lignes,colonnes,GTaille);
                          break;
                          case 4:
                              AfficherCase(grille3D,GTaille,RTaille,symboles,nbsymboles);
                          break;
                          case 5:
                              AfficheCoordonnes(grille3D,GTaille);
                          break;
                          case 6:
                              TirageAide(grille3D,GTaille,RTaille,symboles,nbsymboles,lignes,colonnes);
                          break;
                      }
              
              
              }
              

              voilà Aide le message n'apparait que si je met l'include de TirageAide étrangement.

              voilà TirageAide

              #include <stdio.h>
              #include <stdlib.h>
              #include <unistd.h>
              #include <time.h>
              
              #include "constante.h"
              #include "Affichage.h"
              #include "SaisieDurcie.h"
              #include "colonne.h"
              #include "parSymbole.h"
              void TirageAide(TGrille3D grille3D,int GTaille,int RTaille,int symboles,int nbsymboles,int lignes,int colonnes)
              {
                  int ligne=0;
                  int Tirage;
                  srand(time(NULL));
                  Tirage = (rand() % (5 - 1 + 1)) + 1;
                  switch(Tirage)
                  {
                      case 1:
                              afficheGrillePossibilites(grille3D,GTaille,RTaille,symboles,nbsymboles);//affiche la grille de possibilit
                          break;
              
                          case 2:
                              puts("1-Lignes");
                              puts("2-Colonnes");
                                  ligne = saisieDeuxConditions(1,2);
                                  if(ligne==1)
                                      {
              
                                          ChercheLigne(grille3D,GTaille,RTaille,symboles,nbsymboles);
                                      }
                                      else if(ligne==2)
                                      {
                                          ChercheColonne(grille3D,GTaille,RTaille,symboles,nbsymboles);
                                      }
                          break;
                          case 3:
                             AffichagePossibiliteSymboles(grille3D,lignes,colonnes,GTaille);
                          break;
                          case 4:
                              AfficherCase(grille3D,GTaille,RTaille,symboles,nbsymboles);
                          break;
                          case 5:
                              AfficheCoordonnes(grille3D,GTaille);
                          break;
                  }
              }
              

              (son .h) même si je ne pense pas qu'il vous sera utile

              #ifndef TIRAGEALEATOIRE_H_INCLUDED
              #define TIRAGEALEATOIRE_H_INCLUDED
              void TirageAide(TGrille3D grille3D,int GTaille,int RTaille,int symboles,int nbsymboles,int lignes,int colonnes)
              
              #endif // TIRAGEALEATOIRE_H_INCLUDED
              



              EDIT :

              Enfaite désolé.. je viens de trouver l'erreur je dois être débile.. en disant que le .h servirais a rien peu après je me suis dis regarde et compare au cas ou que tu as inverser un parametres.. et je découvre avoir .. RAPE le point virgules.. problèmes régler , Merci a tous 



              -
              Edité par FlorianDbsz 14 mai 2019 à 15:44:49

              • Partager sur Facebook
              • Partager sur Twitter

              Error début et fin

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown