Problem z porównaniem
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Problem z porównaniem

AutorWiadomość
Temat założony przez niniejszego użytkownika
Problem z porównaniem
» 2014-06-04 00:06:00
Wykonuje poziom pierwszy i stanalem na 11 lekcji, tzw. operacje porownania. na koncu jest zadanie, by napisac program wykorzystujący wielokrotne przypisanie. Wymyslilem sobie program, ktory porowna, czy x jest wieksz od y. Oto moj kod:
Jak zrobic, zeby porownanie zostalo sprawdzone?
Bede wdzieczny za kazddy glos krytyki :).
C/C++
#include <iostream>

int main()
{
    int x, y;
    x = 81;
    y = 81;
   
    bool sprawdzenie;
   
    sprawdzenie = x > y;
   
    std::cout << "Czy x (wpisz x)" << std::endl;
    std::cin >> x;
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "jest wieksze od y (wpisz y)";
    std::cin >> y;
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Sprawdzenie =";
    sprawdzenie = std::cin.good();
    return 0;
}
P-111394
» 2014-06-04 01:24:58
W ostatniej linijce powinieneś wyświetlić wartość zmiennej sprawdzenie, a nie przypisywać jej wartość metody cin.good(), chyba, że to było Twoim celem. Najpierw sprawdzasz, czy x jest większy od y, a potem przypisujesz im wartości? W Twojej wersji to najpierw przypisujesz im wartość 81, a następnie sprawdzasz, czy 81 jest większe od 81, co nigdy nie jest prawdą, więc do zmiennej sprawdzenie przypisywana jest wartość 0. Jeśli sprawdzenie byłoby prawdą, to zmiennej sprawdzenie zostałaby przypisana wartość 1. Dzieje się to dlatego, że wartością wyrażenia relacyjnego jest true lub false, co w tym przypadku jest konwertowane na wartość typu int, czyli odpowiednio 1 lub 0.
P-111397
Temat założony przez niniejszego użytkownika
» 2014-06-04 11:03:42
Dobra, rozwiązałem problem. Nie potrzebnie pisalem to cin.good, dzieki PaSaSaP.
C/C++
#include <iostream>

int main()
{
    int x, y;
    x = 81;
    y = 81;
    bool sprawdzenie = x > y;
   
   
   
   
    std::cout << "Czy x (wpisz x)" << std::endl;
    std::cin >> x;
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "jest wieksze od y (wpisz y)";
    std::cin >> y;
    std::cin.clear();
    std::cin.sync();
   
    std::cout << "Sprawdzenie =" << sprawdzenie << std::endl;
   
    return 0;
}

P-111398
« 1 »
 Strona 1 z 1