IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème avec les Boucles


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Par défaut Problème avec les Boucles
    bonjour a tous
    alors voila j'essaye de programmer depuis peu et j'ai un problème pour faire mes boucles. je tente de faire une calculatrice mais je ne trouve pas le code pour que le programme puisse reprendre depuis le début à la question "Est-ce l'opération désirée?" si oui le calcul se fait, sinon le programme reprend au début, mais je n'arrive qu'à faire le calcul Pouvez-vous m'aider svp?

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Par défaut
    poste nous ton code sinon ça va être dur de savoir ce qui se passe.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Par défaut
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main()
    {
        int n1, n2;
        char choix, choix2, choix3, a = n1 + n2, z = n1 - n2, e = n1 * n2, r = n1 / n2, t = n1 % n2 ;
     
       printf ("==========Calculatrice==========\n\n\n");
       do {
        printf ("Veuillez choisir un nombre\n");// Choix n1
        scanf ("%d", &n1);
        printf ("Veuillez choisir un autre nombre\n");//choix n2
        scanf ("%d", &n2);
        printf ("Quelle opération souhaitez-vous effectuer?\n");
        while (choix != '+' || '-' || '*' || '/'){
            printf ("Tapez '+' pour l'addition\n");
            printf ("Tapez '-' pour la soustraction\n");
            printf ("Tapez '*' pour la multiplication\n");
            printf ("Tapez '/' pour la division\n");
            scanf ("%c", &choix);}
        if (choix == '+'){
            printf ("===Addition===\n");
            printf ("Voulez-vous faire une addition?\n");
            printf ("Oui -> o\n");
            printf ("Non -> n\n");
            scanf ("%c", &choix2);
            while (choix2 != 'o' || 'O' || 'n' || 'N'){
                printf ("Mettre 'o' pour continuer ou 'n' pour une autre opération\n");
                scanf ("%c", &choix2);}
                if (choix2 == 'o' || 'O'){
                    printf ("Le résultat de %d + %d est %d\n", n1, n2, a);}
                    getchar ();
        }
        else if (choix == '-'){
            printf ("===Soustraction===\n");
            printf ("Voulez-vous faire une soustraction?\n");
            printf ("Oui -> o\n");
            printf ("Non -> n\n");
            scanf ("%c", &choix2);
             while (choix2 != 'o' || 'O' || 'n' || 'N'){
                printf ("Mettre 'o' pour continuer ou 'n' pour une autre opération\n");
                scanf ("%c", &choix2);}
                if (choix2 == 'o' || 'O'){
                    printf ("Le résultat de %d - %d est %d\n", n1, n2, z);}
                    getchar ();
        }
        else if (choix == '*'){
            printf ("===Multiplication===\n");
            printf ("Voulez-vous faire une multiplication?\n");
            printf ("Oui -> o\n");
            printf ("Non -> n\n");
            scanf ("%c", &choix2);
            while (choix2 != 'o' || 'O' || 'n' || 'N'){
                printf ("Mettre 'o' pour continuer ou 'n' pour une autre opération\n");
                scanf ("%c", &choix2);}
                if (choix == 'o' || 'O'){
                    printf ("Le résultat de %d * %d est %d\n", n1, n2, e);}
                    getchar ();
        }
        else if (choix == '/'){
            printf ("===Division===\n");
            printf ("Voulez-vous faire une multiplication?\n");
            printf ("Oui -> o\n");
            printf ("Non -> n\n");
            scanf ("%c", &choix2);
             while (choix2 != 'o' || 'O' || 'n' || 'N'){
                printf ("Mettre 'o' pour continuer ou 'n' pour une autre opération\n");
                scanf ("%c", &choix2);}
                if (t == 0){
                    printf ("Le résultat de %d / %d est %d\n", n1, n2, r);}
                    else  printf ("Le résultat de %d / %d est %d et il reste %d\n",n1, n2, r, t);
                    getchar ();
        }
            printf ("Voulez-vous effectuer une autre opération?\n");
            printf ("Oui -> o\n");
            printf ("Non -> n\n");
            scanf ("%c", &choix3);
            while (choix3 != 'o' || 'O' || 'n' || 'N'){
                printf ("Voulez-vous effectuer une autre opération?\n");
                printf ("Oui -> o\n");
                printf ("Non -> n\n");
                scanf ("%c", &choix3);}}
        while (choix == 'n' || 'N');
        void exit (int etat);
    }
    pour l'instant c'est ça mais je crois qu'il y a quelques erreurs dans celui-ci

  4. #4
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Par défaut
    déja petite erreur de contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    printf ("===Division===\n");
    printf ("Voulez-vous faire une multiplication?\n");
    Ensuite ceci n'est pas correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (choix == 'n' || 'N');
    Plutot faire ça comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (choix == 'n' || choix == 'N');
    Sinon de manière générale, la structure de ton programme est bancale. Tu devrais factoriser tout ça. une fonction pour l'addition, une pour la soustraction etc... Ce sera beaucoup plus simple à manipuler. Ensuite tu fait une batterie de if, else if (comme tu a fait) qui appelleront tes fonctions, le tout dans une boucle.

    et a la fin du main fait un return (0); plutot q'un exit.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut à toi,
    Tu fais tout le temps la même erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    choix2 != 'o' || 'O' || 'n' || 'N'
    Ceci est faux et archi faux ! Ca compile en effet mais ça ne fait pas du tout ce que tu souhaite faire.
    Ce que tu voudrais c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    choix2 != 'o' || choix2 != 'O' || choix2 != 'n' || choix2 != 'N'
    Modifie tous les trucs comme ça et ça devrait déjà aller mieux

    La signification de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    choix2 != 'o' || 'O' || 'n' || 'N'
    C'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((((choix2 != 'o') || ('O')) || ('n')) || ('N'))
    'a' renvois la valeur ASCII du caractère 'a' donc une valeur positive donc vrai, donc tes conditions seront toujours vraies

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Par défaut
    Merci pour ces réponses j'ai remédié aux problèmes que vous avez soulevé mais ma question à la base n'était pas là. en fait je voudrais qu'à ce niveau du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     printf ("Mettre 'o' pour continuer ou 'n' pour une autre opération\n");
                scanf ("%c", &choix2);}
                if (choix2 == 'o' || choix2 == 'O'){
                    printf ("Le résultat de %d + %d est %d\n", n1, n2, a);}
                    getchar ();
    quand l'opérateur dit non que le else qui est censé suivre renvoi au début du programme
    De plus lorsque j'essaye mon programme,il se bloque à la premeire boucle avec le while qui permet de choisir une opération je voudrais savoir pourquoi puisque je peux choisir mes chiffres mais l'oprétion et ensuite impossible à faire et c'est plutôt bête pour une calculatrice

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Essaye de restructurer ton code premièrement. Il y a un gros soucis à ce niveau là.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les boucles for
    Par Marie_7 dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/09/2012, 10h56
  2. Problème avec les boucles VBA
    Par luge29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2010, 15h32
  3. problème avec les boucles vba
    Par Mon_ami dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/04/2009, 06h15
  4. problème avec les boucle infinies
    Par manciaux dans le forum C
    Réponses: 3
    Dernier message: 14/05/2007, 12h16
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo