IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

erreur C2371 : redéfinition; type de base différents


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Redgard
    Homme Profil pro
    x
    Inscrit en
    Décembre 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : x

    Informations forums :
    Inscription : Décembre 2014
    Messages : 90
    Par défaut erreur C2371 : redéfinition; type de base différents
    Bonjour,

    J'essaie de compiler un programme qui me renvoie l"erreur C2371 : redéfinition; type de base différents",pour la ligne 74.

    En bref, le problème est lié au fait que je définis 2 fois une même variable, mais je n'arrive pas à comprendre où...
    J'ai essayé d'enlever les const, mais ça n'a rien changer. Est-ce que c'est parce que je devrais passer par des pointeurs pour MIN et MAX?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    //déclaration des fonctions secondaires
    int YourNumb(const int MIN, const int MAX);
    int TestNumb(int myNumb, const int nbrMystere);
    void ScoreTab(const int nbrMystere, int compteur);
    void GameMstBox(const int MIN, const int MAX);
     
     
    // ==================== FONCTION MAIN ====================
    int main() {
    	//declaration des constantes
    	const int MIN = 0, MAX = 100;
     
    	//initialisation du générateur de nombre aléatoire
    	srand(time(NULL));
     
    	//début de la partie
    	GameMstBx(MIN, MAX);
     
    	//fin du programme
    	return 0;
     
    }
     
    // ==================== FONCTION SECOND ====================
    // fonction demandant la réponse
    int YourNumb(const int MIN, const int MAX) {
    	char retourCl[10 + 1];
    	int myNumb, status;
     
    	while (1)
    	{
    		fputs("Entrez un nombre entre 0 et 100 : ", stdout);
    		fgets(retourCl, 10 + 1, stdin);
    		status = sscanf(retourCl, "%d", &myNumb);
    		// "if" casse la boucle, si ses conditions sont remplies
    		if (status == 1 && myNumb >= MIN && myNumb <= MAX) break;
    		fputs("Entrée incorrect - Entrez un nombre compris entre 0 et 100!", stdout);
    	}
     
    	return myNumb;
    }
     
    //fonction donnant un indice
    int TestNumb(int myNumb, const int nbrMystere) {
    	if (myNumb < nbrMystere)
    	{
    		fputs("C'est plus!", stdout);
    		return 0;
    	}
    	else if (myNumb > nbrMystere)
    	{
    		fputs("C'est moins!", stdout);
    		return 0;
    	}
    	else
    	{
    		fputs("Bravo! vous avez trouvez le nombre mystère", stdout);
    		return 1;
    	}
    }
     
    //fonction affichant le résultat du joueur
    void ScoreTab(const int nbrMystere, int compteur) {
    	fputs("===== RESULTAT DE PARTIE =====\n", stdout);
    	printf("Le nombre mystère était : %d \n", nbrMystere);
    	printf("Nombre de tour: %d \n", compteur);
    }
     
    //fonction commençant la partie
    void GameMstBx(const int MIN,const int MAX) {
    	// playerAnswer		- variable stockant la réponse du joueur
    	// nbrMystere		- variable stockant le nombre généré aléatoirement
    	int playerAnswer, nbrMystere;
     
    	// gameWin			- variable définissant la condition du jeux (1 = gagné)
    	// compteur			- variable comptant le nombre de tour
    	int gameWin = 0, compteur = 0;
     
    	//attribution d'un nombre généré aléatoirement
    	nbrMystere = (rand() % (MAX - MIN + 1)) + MIN;
     
    	//boucle de partie
    	do
    	{
    		//compte le nombre de tour
    		compteur++;
     
    		//fonction récupérant la réponse du joueur
    		playerAnswer = YourNumb(MIN, MAX);
     
    		//fonction testant la réponse du joueur
    		gameWin = TestNumb(playerAnswer, nbrMystere);		
    	} while (gameWin == 0);
     
    	// fonction affichant les résultats de partie
    	ScoreTab(nbrMystere, compteur);
    }
    Merci d'avance,
    Red'

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 769
    Par défaut
    Ton erreur est ligne 9 ... et ton compilateur te dit bien qu'il ne voit pas la définition de ta procédure GameMstBx


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    forum.c: In function ‘main’:
    forum.c:21:2: warning: implicit declaration of function ‘GameMstBx’ [-Wimplicit-function-declaration]
      GameMstBx(MIN, MAX);
      ^
    forum.c: At top level:
    forum.c:74:6: warning: conflicting types for ‘GameMstBx’
     void GameMstBx(const int MIN,const int MAX) {
          ^
    forum.c:21:2: note: previous implicit declaration of ‘GameMstBx’ was here
      GameMstBx(MIN, MAX);
      ^

  3. #3
    Membre confirmé Avatar de Redgard
    Homme Profil pro
    x
    Inscrit en
    Décembre 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : x

    Informations forums :
    Inscription : Décembre 2014
    Messages : 90
    Par défaut
    beuheuheuheu

    C'est constament la même chose, j'arrive pas à voir ce genre de faute. Avec le temps, je présume que je finirai par savoir quelle sont les différents cas de figure possible -_- ...

    En tout cas merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 19
    Dernier message: 10/05/2023, 18h25
  2. Meilleurs outils pour gérer différents type de bases de données
    Par asoka13 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/06/2015, 10h31
  3. Réponses: 14
    Dernier message: 18/07/2011, 21h00
  4. différents types de bases de données
    Par Alvergnat dans le forum Access
    Réponses: 2
    Dernier message: 18/06/2005, 17h06
  5. Jointure sur 2 tables de bases différentes
    Par Celina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2003, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo