À l'école, on nous a demandé de réalisé un programme simple, en console, qui aurait pour objectif de dire "Bonjour Madame/Mademoiselle/Monsieur + Prénom" à la fin.
Il faut donc :
-Demander le prénom
-Demander le sexe (Madame/Mademoiselle ou Monsieur)
-Demander le statut, si personne féminine (Madame si mariée, Mademoiselle sinon)
Et c'est à peu prêt tout.
Mais ça ne marche pas...
#include
#include
char nom[20];
char sexe, statut;
int main()
{
printf("Nom ?\n");
scanf("%s", &nom);
printf("Mâle ou Femelle ? (M/F)\n");
scanf("%s", &sexe);
if (sexe == 'M')
{
printf("\nBonjour Monsieur %s .", nom);
}
else if (sexe == 'F')
{
printf("Etes-vous mariée ? (O/N)\n");
scanf("%s", &statut);
if (statut == 'O')
{
printf("\nBonjour Madame %s .", nom);
}
else
{
printf("\nBonjour Mademoiselle %s .", nom);
}
}
else
{
printf("\nvous êtes un extraterrestre!");
}
return 0;
}[/code]
Je pense que le problème est plutôt syntaxique, non ?
J'ai pas mal de questions auxquelles je n'ai pas su répondre...
- Est-ce que, pour le "if", il faut mettre "if (sexe == "M")" ou bien "if (sexe == 'M')" ?
- Est-ce que le "%s" est bien juste ? On m'a dit qu'on pouvait mettre "%c" quand ce n'était qu'une seule lettre ?
- ...
Merci d'avance à ceux qui jetteront un oeil ! ;)
Edit : Effectivement, j'avais oublié le message du compilateur, désolé.
-------------- Build: Debug in madame_monsieur ---------------
Compiling: main.c
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c: In function ‘main’:
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:11: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[20]’
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:17: warning: comparison between pointer and integer
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:17: warning: comparison with string literal results in unspecified behavior
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:22: warning: assignment makes integer from pointer without a cast
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:22: warning: suggest parentheses around assignment used as truth value
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:27: warning: assignment makes integer from pointer without a cast
/home/simon/Bureau/Code::Blocks/madame_monsieur/main.c:27: warning: suggest parentheses around assignment used as truth value
Linking console executable: bin/Debug/madame_monsieur
Output size is 9,06 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 7 warnings
Petit supplément, quand je lance le programme, il me fait ça :
"Nom ?
Simon
Mâle ou Femelle ? (M/F)
M
Etes-vous mariée ? (O/N)
N
Bonjour Madame ."