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

[C++] Pętla do...while, rozdział 15 drugie zadanie domowe.

Ostatnio zmodyfikowano 2016-06-04 20:56
Autor Wiadomość
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.


C/C++
#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;
}

P-148808
carlosmay
» 2016-06-02 20:54:36
Użyj operatora koniunkcji zamiast alternatywy w warunku pętli.


C/C++
if( l1 == true && l2 == true )
 Używaj wartości bool'owskich zamiast "magicznych" liczb (jeśli twój kompilator je obsługuje). Jest czytelniej.
P-148812
Kamil729
Temat założony przez niniejszego użytkownika
» 2016-06-04 20:56:40
Już wszystko działa, dzięki za pomoc.
P-148869
« 1 »
  Strona 1 z 1