Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

zadanie 2 lekcja 15

Ostatnio zmodyfikowano 2012-01-28 14:19
Autor Wiadomość
314Mat
Temat założony przez niniejszego użytkownika
zadanie 2 lekcja 15
» 2012-01-28 13:43:08
Podczas odpalania programu mogę podać obie liczby oraz działanie ale potem powraca do samego początku bez podawania wyniku. Jeśli usunę while to wszystko jest ok tylko nie powraca jak spróbuje się podzielić przez zero.


C/C++
#include <iostream>

int main()
{
    int liczba1;
    int liczba2;
    int rownanie;
   
    do
    {
        do // to jest "do" od zaznaczonego while
        {
           
           
            std::cout << std::endl;
            std::cout << "Wprowadz pierwsza liczbe do obliczen :";
            std::cin >> liczba1;
            std::cin.clear();
            std::cin.sync();
            std::cout << "Wprowadz druga liczbe do obliczen :";
            std::cin >> liczba2;
            std::cin.clear();
            std::cin.sync();
            std::cout << "Wybier dzialanie wpisujac odpowiednia liczbe" << std::endl;
            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] Zakonczenie programu" << std::endl;
            std::cin >> rownanie;
            std::cin.clear();
            std::cin.sync();
            if( liczba2 == 0 && rownanie == 4 )
            {
                std::cout << "Nie mozesz dzielic przez zero" << std::endl;
            }
           
        }
        while( liczba2 != 0 || rownanie != 4 ); //tu jest Problem -----------------------
       
        switch( rownanie )
        {
        case 1:
            std::cout << liczba1 << " + " << liczba2 << " = " << liczba1 + liczba2;
            break;
           
        case 2:
            std::cout << liczba1 << " - " << liczba2 << " = " << liczba1 - liczba2;
            break;
           
        case 3:
            std::cout << liczba1 << " * " << liczba2 << " = " << liczba1 * liczba2;
            break;
           
        case 4:
            std::cout << liczba1 << " / " << liczba2 << " = " << liczba1 / liczba2;
            break;
        }
    }
   
    while( rownanie != 5 );
   
    return 0;
}
P-49644
jsc
» 2012-01-28 13:45:02
Warunek na dzielenie przez 0 lepiej umieść w case.
P-49645
314Mat
Temat założony przez niniejszego użytkownika
» 2012-01-28 14:02:29
Dzięki pomogło.
Ale jeśli mam być szczery chciałem wiedzieć dlaczego to nie wypaliło?
tak na przyszłość :)
P-49648
jsc
» 2012-01-28 14:11:02
Bo twój pierwszy warunek powtórzenia jest zły, powinien być taki jak warunek wyświetlenia napisu o niemożności dzielenia.
P-49649
314Mat
Temat założony przez niniejszego użytkownika
» 2012-01-28 14:19:14
Bardzo dziękuje, już mnie to doprowadzało do szału. :)
P-49650
« 1 »
  Strona 1 z 1