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'