Wątek przeniesiony 2018-05-31 12:27 z C# i .NET przez somekind.

Co jest tu nie tak? Używam || i wydawało mi się że tak będzie działać

0
#include <iostream>
using namespace std;
main ()
{
    int bok1, bok2;
    do
    {
        cout<<"Podaj dodatnia dlugosc boku"<<endl;
        cout<<"a=    ";
        cin>>bok1;
        cout<<"b=    ";
        cin>>bok2;

        if (bok1&&bok2<=0)
            cout<<"Niepoprawna dlugosc ktoregos z bokow!"<<endl;
    }
    while (bok1&&bok2<=0);
    cout<<"Pole prostokata wynosi:   "<<bok1*2+bok2*2<<"cm2"<<endl;

    return 0;
}
0

Przecież w tym kodzie nigdzie nie ma ||.

 if (bok1 <= 0 || bok2 <= 0)
0

co więcej, sprawdzasz tylko bok2.

0

Poprawcie mnie jesli sie myle ale (bok1&&bok2<=0) jest raczej niepoprawne.

0

Nie jest niepoprawne... co najwyżej nie będzie działać tak jak autor chciał. Dla c++ int o wartości 0 daje false, cała reszta daje true.

https://ideone.com/Pa6Zyl
Tylko "b" nie zostanie wypisane, bo ma wartość 0.
Reszta warunków daje true ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1