Problème code

Résolu
MagicalCaptn Messages postés 2 Statut Membre -  
VanDog Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je débute en C et malgré de nombreuses recherchent je n'ai pas pu trouver de problème dans mon code qui ne marche malheureusement pas, le voici:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

#include <stdio.h>
#include <stdlib.h>

int main ()
{
    int choice = 0;
    double monney, sum;
    
    do
    {
        printf("Quelle conversion souhaitez vous faire ?\n");
        printf("1. Euros --> Francs\n");
        printf("2. Francs --> Euros\n");
        scanf("%d", &choice);
    }while (choice != 0 || choice !=1);
    
    if (choice == 1)
    {
        printf("Quelle somme souhaitez-vous convertir ?\n");
        scanf("%lf", &sum);
        monney = sum * 6.56;
        printf("%f euros vallent %f francs.", sum, monney);
    }
    
    else
    {
        printf("Quelle somme souhaitez-vous convertir ?\n");
        scanf("%lf", &sum);
        monney = sum / 6.56;
        printf("%f francs vallent %f euros.", sum, monney);
    }
    
    return 0;
}


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Merci d'avance.
MagicalCaptn

EDIT: Ajout de la coloration syntaxique.

1 réponse

  1. VanDog Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   13
     
    Bonjour,

    Première chose, avant de te répondre; je t'invite à utiliser la balise de code trouvable dans les petits onglets lors de la rédaction; la lecture n'en sera que plus facile pour tout le monde.

    Ensuite, j'ai exécuté ton code pour voir ce que signifiait " Ne marche pas ".
    Ton problème est-il le suivant : Le programme boucle sans fin sur le menu à deux choix ?

    Quoi qu'il en soit pour s'en sortir c'est simple. Tu fais une entrée dans la variable
    choice
    qui vaut 1 OU 2; mais ton
    while
    tourne aussi longtemps que cette variable est différente de 1 ou de 2. Dans la mesure où une variable ne contient qu'une seule et unique valeur (enfin un entier ici); ton while est TOUJOURS vrai !
    Du coup si
    choice
    vaut 1 il est différent de 2, s'il vaut 2 il est différent de 1. Ce qu'il te faut, pour valider que choice soit 1 OU 2, c'est qu'il soit "égale à 1 OU égale à 2" ou alors " différent de 1 ET différent de 2", base de la logique ^^
    La solution est donc de changer d'opérateur binaire dans ton
    while

    Ensuite, le programme semble fonctionner :)
    0
    1. MagicalCaptn Messages postés 2 Statut Membre
       
      Super merci beaucoup ! J'ai compris mon erreur et cela marche parfaitement !

      Bien à toi.
      MagicalCaptn
      0
    2. VanDog Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   13
       
      Aucun problème, si tu rencontres encore des problèmes, n'hésite pas à revenir ou à m'écrire. Bon courage !
      Edit: et pense à marquer le sujet résolu ^^
      0