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

[Rozdział 17] zakończenie pętli do...while

Ostatnio zmodyfikowano 2015-07-21 12:28
Autor Wiadomość
krzyweldi
Temat założony przez niniejszego użytkownika
[Rozdział 17] zakończenie pętli do...while
» 2015-07-21 11:34:44
Witam, zatrzymałem się na 2 zadaniu w rozdziale 17 i kompletnie nie wiem jak sobie z nim poradzić.
"Zmodyfikuj kalkulator, który pisałeś w jednym ze wcześniejszych rozdziałów tak, aby korzystał on ze wcześniej napisanej funkcji wczytajLiczbe."

C/C++
#include <iostream>
using namespace std;

float wczytajLiczbe()
{
    do
    {
        cin.clear();
        cin.sync();
       
        float moja;
        cin >> moja;
        if( cin.good() )
        {
            return moja;
        }
        else
             cout << "Podaj prawidlowa liczbe!" << endl << "Podaj liczbe: ";
       
    } while( !cin.good() );
   
}

int main()
{
    float wynik;
    wynik = 0;
    int wybor;
   
    do
    {
        cout << "Podaj pierwsza liczbe: ";
        float liczba1 = wczytajLiczbe();
        cout << "Podaj druga liczbe: ";
        float liczba2 = wczytajLiczbe();
       
        cout << "Wybierz dzialanie" << endl;
        cout << "[1] Dodawanie" << endl;
        cout << "[2] Odejmowanie" << endl;
        cout << "[3] Mnozenie" << endl;
        cout << "[4] Dzielenie" << endl;
        cout << "[5] Rezygnuj" << endl;
        cin >> wybor;
       
        switch( wybor )
        {
        case 1:
            cout << "Wybrano dodawanie. Wynik dodawania: " << liczba1 + liczba2 << endl;
            wynik = liczba1 + liczba2;
            break;
        case 2:
            cout << "Wybrano odejmowanie. Wynik odejmowania: " << liczba1 - liczba2 << endl;
            wynik = liczba1 - liczba2;
            break;
        case 3:
            cout << "Wybrano mnozenie. Wynik mnozenia: " << liczba1 * liczba2 << endl;
            wynik = liczba1 * liczba2;
            break;
        case 4:
            cout << "Wybrano dzielenie. Wynik dzielenia: " << liczba1 / liczba2 << endl;
            wynik = liczba1 / liczba2;
            break;
        case 5:
            cout << "Zrezygnowano. Wracam." << endl;
            wynik = wynik;
            break;
        default:
            cout << "Podano bledne dane.";
            break;
        }
       
        cout << "Wynik: " << wynik << endl;
    }
    [ b ] while( ??? );[ / b ]
   
    return 0;
}

Problem tkwi w tym, że nie wiem jak ustawić aby pętla kończyła się w przypadku gdy funkcja wczytajLiczbe zwróci 0, ponieważ while nie ma dostępu do liczba1 i liczba2?
Przy okazji: czy tak wykonane zadanie jest ok?
Pozdrawiam.
P-134988
docentpp
» 2015-07-21 12:23:29
Zadeklaruj zmienne liczba1, liczba2 PRZED pętlą do...while.//Razem ze zmienną wynik :-)
P-134992
krzyweldi
Temat założony przez niniejszego użytkownika
» 2015-07-21 12:28:40
No tak! Kurde, przecież to takie logiczne :D Czasem człowieka ogłupi i będzie myślał, i myślał.. Dzięki wielki ;)
P-134993
« 1 »
  Strona 1 z 1