Question pour une base

Résolu
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

  1. 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
    1. ah d'accords, j'avais mal compris l'utilisation du || . Merci beaucoup de ton aide.
      0