Nie poprawnie działająca pętla w funkcji.
Ostatnio zmodyfikowano 2013-12-01 03:34
Sevet Temat założony przez niniejszego użytkownika |
Nie poprawnie działająca pętla w funkcji. » 2013-12-01 03:10:01 Witam! Używam Code::Blocks 10.05 i przerabiam kurs cpp, wszystko jest ok, ale dzisiaj robiąc program na "zadanie domowe" (pierwsze do tematu "Funkcje - pierwsze starcie"-dział: poziom 2)zrobiłem program z pętlą która działa wręcz nie logicznie. Gdy wpiszę jakąkolwiek wartość liczbową program zapisze ją do zmiennej a, funkcja prawidłowo zwróci ją do main() i zostanie wyświetlona liczba którą wprowadziłem. Jeśli jednak wprowadzę jakiekolwiek znaki np "abc", program zakończy pętlę i przekaże zmienną a=14(nie mam pojęcia czemu) do main() pomimo tego, że (o czym sam mnie informuje) zmienna good jak również zmienna bad są równe 0. Przecież wg warunku do wykonania pętli if gdy zmienna good=0 lub bad=1 pętla powinna się kontynuować. Może to i moja wina, ale jak na mój gust wszystko jest dobrze. Proszę o szybką odpowiedź bo strasznie "zajarałem" się kursem i chciałbym go jak najszybciej kontynuować. Pozdrawiam. Tutaj wklejam kod: #include <iostream> using namespace std; int wczytajLiczbe() { bool good, bad; int a; if(( good == 0 ) ||( bad == 1 ) ); { cin >> a; good = cin.good(); bad = cin.bad(); cin.clear(); cin.sync(); cout << a << bad << good; } return a; }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; }
|
|
killjoy |
» 2013-12-01 03:23:54 if to nie jest pętla tylko instrukcja warunkowa, chodziło ci pewnie o pętle while . Funkcja zwraca 14 bo a nie jest zainicjalizowana i znajdować się w niej może cokolwiek, zresztą good i bad też powinny być inicjalizowane. |
|
Sevet Temat założony przez niniejszego użytkownika |
» 2013-12-01 03:34:10 Dzięki... Troszkę za długo chyba przed tym komputerem siedzę ;D. |
|
« 1 » |