lekcja 17
Ostatnio zmodyfikowano 2013-03-03 20:01
Diabolo1989 Temat założony przez niniejszego użytkownika |
lekcja 17 » 2013-03-03 18:45:50 Napisz funkcję, która będzie wczytywała liczby ze standardowego wejścia i zwracała wczytaną wartość. Funkcja ma zagwarantować, że zwracana liczba zawsze jest poprawna. Oznacza to, że funkcja będzie musiała pytać użytkownika o wprowadzenie liczby dopóki nie poda poprawnej. #include <iostream> using namespace std; int wczytajLiczbe() { int a; int b; bool c; do { cin.clear(); cin.sync(); cout << "podaj a:"; cin >> a; c = cin.good(); } while( c == false ); return a; do { cin.clear(); cin.sync(); cout << "podaj b:"; cin >> b; c = cin.good(); } while( c == false ); return b ; }
int main() { cout << "podaj liczby:" << endl; int liczba = wczytajLiczbe(); cout << "podane liczby to:" << liczba << endl; return 0; } program nie pozwala podac niepoprawnej wartosci ale zwraca tylko druga czyli b co robie nie tak? |
|
Berux |
» 2013-03-03 19:29:44 Witam. Gdy kompilator dojdzie do return , to od razu funkcja się zakończy - do drugiego return'a nawet nie dojdzie. Tak więc proponuję w tej funkcji wczytywać tylko 1 liczbę, zaś w funkcji głównej mieć pętlę. |
|
Diabolo1989 Temat założony przez niniejszego użytkownika |
» 2013-03-03 20:01:29 #include <iostream> using namespace std; int liczba1() { int a; bool c; do { cin.clear(); cin.sync(); cout << "podaj a:"; cin >> a; c = cin.good(); } while( c == false ); return a; } int liczba2() { int b; bool c; do { cin.clear(); cin.sync(); cout << "podaj b:"; cin >> b; c = cin.good(); } while( c == false ); return b; }
int main() { cout << "podaj liczby:" << endl; int liczbaPierwsza = liczba1(); int liczbaDruga = liczba2(); cout << "podane liczby to:" << liczbaPierwsza << "oraz" << liczbaDruga << endl; return 0; }
zmienilem to na cos takiego, czy zrobilem blad czy jest to po żądany wynik przy tym zadaniu? |
|
« 1 » |