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 :

verifier 2 conditions avec le Do..while


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Par défaut verifier 2 conditions avec le Do..while
    Bonjour
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    do{
        printf("Entrer Quantités Produits \n");
        scanf("%d",&q_produits);
        printf("Entrer Prix Unitaire du Produit \n");
        scanf("%d",&prix_uni);
     }
    while((q_produits<=0) || (&prix_uni<=0));
    je voudrais que la boucle se repète tant qu' au moins un des 2 est negatif

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Salut,

    penses à présenter ton message correctement (balise CODE).
    Pour ce qui est de ton problème, je pense que tu mélange variable et adresse de variable.

    &prix_uni est l’adresse de la variable prix_uni et non sa valeur (je suppose que prix_uni est un entier ou un flottant).

    Du coup il suffit d’enlever le & sur ta seconde condition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    do
    {
            printf("Entrer Quantités Produits \n");
            scanf("%d", &q_produits);
            printf("Entrer Prix Unitaire du Produit \n");
            scanf("%d", &prix_uni);
    } while (q_produits <= 0 || prix_uni <= 0);
    NeoKript

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Par défaut
    Merci pour la remarque sur la balise CODE
    pour ce qui est du & c'etait une erreur de frappe
    merci

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    Dans ce cas, ça a l'air correct. Quels résultats obtiens-tu ?

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Je metterais plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //...
    while (q_produits < 0 || prix_uni < 0);
    Je ne pense pas que zero soit négatif

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Lucien63 Voir le message
    Je metterais plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //...
    while (q_produits < 0 || prix_uni < 0);
    Je ne pense pas que zero soit négatif
    je ne veux pas qu'il entre de prix nulle ou de quantité nulle
    donc le code sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ((q_produits <= 0) || (prix_uni <= 0));
    pas de probleme à ce niveau

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 6
    Par défaut
    resultat souhaité obtenu
    on sort de la boucle lorsque les 2 nombres sont positifs .
    Maintenant je rame sur ce code
    je voudrais creer une boucle qui est
    tant que l'utilisateur entre une lettre differente de 'n ' ou 'N' on reste dans la boucle en lui posant tjrs la meme question
    Continuer ?(O / N)
    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
     
    #include<stdio.h>
    #include<conio.h>
    int prix_uni,q_produits;
    long t_achats;
    char rep;
    main(void){
    t_achats=0;
    rep='n';
     while(rep!='N' || rep!='n'){
    do{
    printf("Entrer Quantités Produits \n"); 
    scanf("%d",&q_produits); 
    printf("Entrer Prix Unitaire du Produit \n"); 
    scanf("%d",&prix_uni); 
    } 
    while ((q_produits <= 0) || (prix_uni <= 0));
    t_achats=t_achats + q_produits*prix_uni;
    printf("Total=%d% \n",t_achats);
    printf("Continuer ?(n ou N pour arreter) \n");                                    
    scanf("%c",&rep);                                   
    }
    Lorsque j'entre dans la boucle la première fois et que j'arrive sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("Continuer ?(n ou N pour arreter) \n");
    je n'ai pas la possibilité d'entrer un caractere et la boucle reprend aussitot

  8. #8
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Par défaut
    Citation Envoyé par icode15 Voir le message
    resultat souhaité obtenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    t_achats=t_achats + q_produits*prix_uni;
    printf("Total=%d% \n",t_achats);
    printf("Continuer ?(n ou N pour arreter) \n");                                    
    scanf("%c",rep);                                   
    }
     while(rep!='N' && rep!='n');
    La derniere accolade (juste avant le while) n'a jamais été ouverte.
    J'aurais fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    do
    {
    printf("Continuer ?(n ou N pour arreter) \n");                                    
    scanf("%c",rep);                                   
    }
     while((rep!='O') && (rep!='o')&&(rep!='N') && (rep!='n'));
    if((rep=='O') || (rep=='o'))
    {
    //reste du programme
    }
    return 0;

Discussions similaires

  1. Vérification de condition avec affichage message
    Par spirou dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2006, 21h27
  2. Une petite doute avec le cycle while
    Par Paulinho dans le forum C++
    Réponses: 3
    Dernier message: 06/11/2005, 10h15
  3. condition avec request
    Par nicerico dans le forum ASP
    Réponses: 3
    Dernier message: 28/06/2005, 15h19
  4. Conditions avec liste de tuples
    Par Robert999 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/07/2004, 11h01
  5. [ Struts ] plusieurs conditions avec equal?
    Par njac dans le forum Struts 1
    Réponses: 7
    Dernier message: 04/06/2004, 09h04

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