Poziom 2 (Funkcje - pierwsze starcie) - Praca Domowa 1
Ostatnio zmodyfikowano 2018-06-09 00:27
Key Temat założony przez niniejszego użytkownika |
Poziom 2 (Funkcje - pierwsze starcie) - Praca Domowa 1 » 2018-06-08 13:09:11 Chciałbym się dowiedzieć, czy dobrze rozwiązałem zadanie z wyżej wymienionego tematu. Dokładniej chodzi o: "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 podaj; do { cin >> podaj; cin.clear(); cin.sync(); } while( podaj == 0 ); return podaj; }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; }
PS.Czy dałoby się zrobić bez zmieniania treści int main(), aby powtarzało się zdanie "Podaj liczbe: "? Tylko zmiana funckji wczytajLiczbe(). |
|
YooSy |
» 2018-06-08 13:58:06 W zadaniu chidzi o podawanie pobieranie liczby póki użytkownik nie podaje poprawnych danych, tj. znaków innych niż cyfry. Funkcja ma zwrócić poprawnie wprowadzoną liczbę. W tej chwili twoja funkcja będzie prawie tożsama z |
|
pekfos |
» 2018-06-08 15:07:00 0 jest poprawną liczbą, warunek jest wiec błędny. Twój sposób czyszczenia bufora również jest błędny. |
|
Key Temat założony przez niniejszego użytkownika |
Odp: pekfos, » 2018-06-08 23:12:55 Jeśli chodzi o bufor, to zgaduję, że powinienem użyć zamiast cin.sync() tego czyszczenia z użyciem biblioteki <limits>. A propos warunku, jak zatem powinien brzmieć prawidłowy, zamiast ( podaj == 0)? Co można wpisać, aby w przypadku podania liter lub znaków, pętla powtarzała się i żeby 0 było prawidłową wartością? Parę lekcji temu też ustawiałem 0 jako wartość do pętli. Chciałbym się dowiedzieć, co innego można wpisać w warunek. |
|
YooSy |
» 2018-06-08 23:17:14 while( !( std::cin >> podaj ) ) { }
|
|
pekfos |
» 2018-06-09 00:27:07 |
|
« 1 » |