Zmienna logiczna bool

0
#include <iostream>
int main()
{
    int l;
    bool liczba;
    liczba = (l % 2 == 0);
    std::cout << "Podaj liczbe:";
    std::cin >> l;
    if (liczba) {
        std::cout << "Parzysta";
    }
    else {
        std::cout << "nieparzysta";
    }

    return 0;
}

dlaczego zawsze nie zależnie od podanej liczby zawsze wypisywana jest instrukcja elese?

0

Sprawdzenia dokonujesz na niezainicjalizowanej zmiennej, co jest UB. Pierw przypisz wartość, potem sprawdzaj.

0

Pewnie dla tego, że zmienną wpisujesz to l, a w if'ie sprawdzasz liczba. Staraj się nie używać liter w nazwach zmiennych, które wyglądają jak cyfry.

0

kq dobrze pisze, na to tzreba zwracać uwagę - to taki odruch:), przekleiłem linijki czytające l do góry i jest OK:

#include <iostream>
int main()
{
    int l;
    bool liczba;
    std::cout << "Podaj liczbe:";
    std::cin >> l;
    liczba = (l % 2 == 0);
    
    if (liczba) {
        std::cout << "Parzysta";
    }
    else {
        std::cout << "nieparzysta";
    }
 
    return 0;
}

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