Question pour une base

Résolu
sherokee43 Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   -  
sherokee43 Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   -
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. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    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. sherokee43 Messages postés 238 Date d'inscription   Statut Membre Dernière intervention   3
       
      ah d'accords, j'avais mal compris l'utilisation du || . Merci beaucoup de ton aide.
      0