Question pour une base

Résolu/Fermé
sherokee43 Messages postés 238 Date d'inscription vendredi 20 juillet 2012 Statut Membre Dernière intervention 1 janvier 2018 - Modifié par crapoulou le 5/10/2016 à 01:00
sherokee43 Messages postés 238 Date d'inscription vendredi 20 juillet 2012 Statut Membre Dernière intervention 1 janvier 2018 - 6 oct. 2016 à 21:40
Bonjours, je suis en train d'apprendre seul la programmation et j'ai une petite question (pour une base vu que j'en suis encore au début)
j'apprends sur un bon site qui me demande de rajouter un choix de caractère et un message d'erreurs si les valeurs sont négatives (à ce programme)
#include <iostream>
using namespace std;

void dessineRectangle(int l, int h)
{
    for(int ligne(0); ligne < h; ligne++)
    {
        for(int colonne(0); colonne < l; colonne++)
        {
            cout << "*";
        }
        cout << endl;
    } 
}

int main()
{
    int largeur, hauteur;
    cout << "Largeur du rectangle : ";
    cin >> largeur;
    cout << "Hauteur du rectangle : ";
    cin >> hauteur;
    
    dessineRectangle(largeur, hauteur);
    return 0;
}


après mes ajouts, cela donne ça.

#include <iostream>
using namespace std;

void dessineRectangle(int l, int h, char choix)
{
    for(int ligne(0); ligne < h; ligne++)
    {
        for(int colonne(0); colonne < l; colonne++)
        {
            cout <<  choix;
        }
        cout << endl;
    }
}

int main()
{
    int largeur, hauteur;
    char choix;

    cout << "Largeur du rectangle : ";
    cin >> largeur;
    cout << "Hauteur du rectangle : ";
    cin >> hauteur;
    if (hauteur || largeur <0)
    {
        cout << "valeurs incorrectes";
        return 0;
    }
    cout << "caractere a utiliser : ";
    cin >> choix;

    dessineRectangle(largeur, hauteur, choix);
    return 0;
}


mais le programme ne m'affiche que valeurs incorrectes, peut importe lesquels je rentre (qu'elles soit supérieurs ou inférieurs à 0). Quelqu'un pourrait m'expliquer? (le choix de caractère marche bien)

1 réponse

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
6 oct. 2016 à 21:36
Bonjour,
Le test
if (hauteur || largeur < 0)
correspond à "si au moins une des deux choses est vraie
hauteur
ou bien
largeur < 0
".
Que penses-tu de faire plutôt :
if ( hauteur <= 0  ||  largeur <= 0 ) 
0
sherokee43 Messages postés 238 Date d'inscription vendredi 20 juillet 2012 Statut Membre Dernière intervention 1 janvier 2018 3
6 oct. 2016 à 21:40
ah d'accords, j'avais mal compris l'utilisation du || . Merci beaucoup de ton aide.
0