Aller au contenu

CorrigEZ mon code svp... (en C)


Messages recommandés

Salut :biere:

 

Voila j'ai commencé le C et j'ai fait un ptit programme pour m'amuser...

 

Voici le code :

 

(édité)

#include <stdio.h>

 

main(void)

{

 

char name[50];

char sexe;

int i;

 

printf("Entrez votre prenom : ");

scanf("%s", name);

printf("Votre sexe (M ou F) : ");

for (i = 1 ; i > 0 ; i++)

  {

  if (sexe = getchar() == 'F')

    {

    printf("Bonjour, madame %s.\n", name);

    break;

    }

  else if (sexe = getchar() == 'M')

    {

    printf("Bonjour, monsieur %s.\n", name);

    break;

    }

  else

    {

    printf("M ou F svp : ");

    }

  }

printf("Pour quitter, appuyez sur une touche.");

getch();

 

}

 

Le problème :

Je rentre le nom, pas de problèmes, mais qd je veux choisir le sexe (M ou F), il accepte que le M !!! Je suppose que c'est un problème avec la condition. J'ai essayé avec 'else if' mais ca ne va pas non plus...

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Un code C optimisé n'utilise qu'UN point de sortie... --> break(); pas bon! :o

 

Honnetement ca a l'air correct... sache que getchar n'affiche pas a l'ecran... donc fais un pas à pas pour voir ce qui foire... si dans ta condition tu met 'M' ou 'F' la lettre tapée doit être en majuscule ! (il ne prend pas le reste)... bref revérifie l'ensemble de ta logique.. elle n'est pas des meilleures... (c'est ce que mon prof me disait souvent ca ! lol)

 

Essaye ceci....attention j'ai pas tester et depuis le tps que je ne fais plus de c...

 

#include <stdio.h>
#include <conio.h>

main()
{

int i=1;
char name[50];
char sexe;


clrscr();
printf("Entrez votre prenom : ");
scanf("%s", name);
printf("Votre sexe (M ou F) : ");
while (i != 0)
{
fflush (stdin);
scanf ("%c",&sexe);
if (sexe == 'F')
  {
  printf("Bonjour, madame %s.\n", name);
  i=0;
  }
else
{
  fflush (stdin);
  if (sexe == 'M')
  {
    printf("Bonjour, monsieur %s.\n", name);
    i=0;
  }
  else
  {
    printf("M ou F svp : ");
  }
}
}
printf("Pour quitter, appuyez sur une touche.");
getch();

}

Lien vers le commentaire
Partager sur d’autres sites

Je rentre le nom, pas de problèmes, mais qd je veux choisir le sexe (M ou F), il accepte que le M !!!

As-tu relancé le programme et testé directement le 'F' ?

A mon humble avis tu avais d'abord testé le 'M' et oublié de purger ton flux.

Lien vers le commentaire
Partager sur d’autres sites

Non j'avais essayé directement le F et ca allait pas non plus mais j'ai compris mon erreur, j'avais ce schema ci pour une condition :

 

if (...)

  {

  ...

  }

 

if (...)

  {

  ...

  }

 

else

  {

  ...

  }

 

alors qu'apparament c'est :

 

if (...)

  {

  ...

  }

 

else

  {

  if (...)

    {

    ...

    }

  else

    {

    ...

    }

  }

 

Merci qd meme a tt ceux qui ont répondu :biere:

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...