Bonjour tout le monde, j’aimerai avoir votre aide concernant mon programme C. En fait
Il s’agit d’écrire un programme qui demande à l’utilisateur son nom et son mot de passe ( à trois chiffres), seule la fonction connaît les noms et les mots de passe admis, on se limite à 4 noms et 4 mots de passe). En cas de non-concordance, le programme principal répondra: "Le mot de passe ne correspond pas au nom" et accordera encore deux essais.

Je ne comprends pas pourquoi ca ne marche pas, quand j’introduis un mot, il m’affiche n’importe quoi, il ne me demande pas d’introduire le code à trois chiffre. Merci de votre aide

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
#include <stdio.h>		
#include <stdlib.h>	
#include <string.h>
 
 
int VerifMotPasse(const char * pNomLu, int codeLu);
 
int main()
{
	const int nbEssaisMax = 3;
	int nbEssais = 0;
	char nomLu[12];
	int codeLu;
	int verifOk;
 
	do
	{
		printf( "Votre nom (11 car. max) = ");
		scanf("%c", &nomLu);
		printf( "Votre code (3 chiffres max) = ");
		scanf("%d", &codeLu);
		nbEssais++;
		verifOk = VerifMotPasse(nomLu, codeLu);
		if (!verifOk)
			printf( "Le mot de passe ne correspond pas au nom !" );
			printf("\n");
	} while (!verifOk && nbEssais < nbEssaisMax);
 
	if (verifOk)
		printf( "Bienvenue dans la suite du programme !");
	else
		printf( "Au revoir !");
	printf("\n");
	system("PAUSE");
	return EXIT_SUCCESS;
} // end main
 
int VerifMotPasse(const char * pNomLu, int codeLu)
{
	int codeOk;
	int nomTrouve;
	const int maxNom = 4;
	const int maxCar = 12;
	char nom[4][12] = {"Toto", "Titi", "Marcel", "Théophile"};
	int code[4] = {123, 312, 118, 114};
	int i = 0; // indice pour la boucle
	do
	{
		nomTrouve = strcmp(pNomLu, nom[i]) == 0;
		if (!nomTrouve)
			i++;
	} while (!nomTrouve && i < maxNom);
	// codeOk est VRAI si le nom est trouvé ET si le code correspond au nom
	codeOk = nomTrouve && (codeLu == code[i]);
	return codeOk;
} // end VerifMotPasse