[C++] Pętla do...while, rozdział 15 drugie zadanie domowe.
Ostatnio zmodyfikowano 2016-06-04 20:56
Kamil729 Temat założony przez niniejszego użytkownika |
[C++] Pętla do...while, rozdział 15 drugie zadanie domowe. » 2016-06-02 19:36:14 Witam. Jak na razie jestem przy 15 rozdziale kursu i mam problem z drugim zadaniem domowym. Znaczy program robi co ma robić ale coś nie mogę sprawić żeby po wpisaniu liczby 0 bądź wpisaniu 5 podczas wyboru działania program zakończył działanie. Jakby ktoś mógł mnie naprowadzić co robię źle byłbym bardzo wdzięczny. #include <iostream> int main() { int liczba_1; int liczba_2; int dzialanie; int wynik = 0; bool l1 = 0; bool l2 = 0; do { std::cout << "Wynik: " << wynik << std::endl; std::cout << "Podaj pierwsza liczbe: "; std::cin >> liczba_1; bool l1 = std::cin.fail(); std::cin.clear(); std::cin.sync(); std::cout << "Podaj druga liczbe: "; std::cin >> liczba_2; bool l2 = std::cin.fail(); std::cin.clear(); std::cin.sync(); if(( l1 == 1 ) ||( l2 == 1 ) ) { wynik = 0; } if(( liczba_1 > 0 ) &&( liczba_2 > 0 ) ) { std::cout << "[1] Dodawanie" << std::endl; std::cout << "[2] Odejmowanie" << std::endl; std::cout << "[3] Mnozenie" << std::endl; std::cout << "[4] Dzielenie" << std::endl; std::cout << "[5] Rezygnuj" << std::endl; std::cout << "Wybierz dzialanie:"; std::cin >> dzialanie; std::cin.clear(); std::cin.sync(); switch( dzialanie ) { case 1: wynik = liczba_1 + liczba_2; break; case 2: wynik = liczba_1 - liczba_2; break; case 3: wynik = liczba_1 * liczba_2; break; case 4: wynik = liczba_1 / liczba_2; break; case 5: std::cout << "Koniec. "; break; } } } while(( liczba_1 != 0 ) ||( liczba_2 != 0 ) ||( dzialanie != 5 ) ); return 0; }
|
|
carlosmay |
» 2016-06-02 20:54:36 Użyj operatora koniunkcji zamiast alternatywy w warunku pętli. if( l1 == true && l2 == true )
Używaj wartości bool'owskich zamiast "magicznych" liczb (jeśli twój kompilator je obsługuje). Jest czytelniej. |
|
Kamil729 Temat założony przez niniejszego użytkownika |
» 2016-06-04 20:56:40 Już wszystko działa, dzięki za pomoc. |
|
« 1 » |