Lekcja 15 do...while
Ostatnio zmodyfikowano 2014-10-07 23:43
Czdum Temat założony przez niniejszego użytkownika |
Lekcja 15 do...while » 2014-10-07 19:01:57 Podczas próby wykonania pierwszego zadania z tej lekcji, pojawił się w moim programie pewien problem, który nie mam pomysłu jak rozwiązać, mianowicie: program działa poprawnie, dopóki wpisujemy wszystkie znaki i liczby, za wyjątkiem zera. Jeśli ktoś mógłby mi wytłumaczyć co zrobić żeby działał poprawnie będę wdzięczny #include <iostream> #include <cstdlib> #include <cstdio> using namespace std; float liczba; bool wyznacznik; int main() { do { cout <<( "wpisz liczbe" ) << endl; cin >> liczba; wyznacznik = liczba; cout <<( "Wpisana liczba to " ) << liczba << endl; cin.clear(); cin.sync(); } while( wyznacznik == 0 ); system( "PAUSE" ); return EXIT_SUCCESS; }
|
|
Rashmistrz |
» 2014-10-07 20:59:40 |
|
FIGUS |
» 2014-10-07 21:04:53 Po pierwsze: Zmienne tworzymy w funkcji głównej "int main()", więc przenosimy float liczba; bool wyznacznik;
do środka "int main()" Po drugie: Chyba mylisz C++ z C. W "std::cout" przy tekście nie musimy wpisywać nawiasów. Po trzecie: W zadaniu było podane, aby w przypadku wpisania błędnych danych wrócić do punktu 1, a 0 nie jest przecież nieprawidłowym danym. Nieprawidłowe dane może być np. wtedy, gdy wpiszemy zamiast cyfr "abcdef". Dlatego skorzystaj z "std::cin.good()". Zrób dwie pętle, jedna będzie twoim menu głównym, druga będzie wczytywac liczby dopóki "std::cin.good() == 1", czyli liczba została wczytana poprawnie.(jedna pętla w drugiej, menu - zewnętrzna, wpisywanie - wewnętrzna) PS.Reszta przyszłych programistów: proszę mnie poprawić, jeśli coś źle doradziłem ;) |
|
Rashmistrz |
» 2014-10-07 21:56:54 |
|
Czdum Temat założony przez niniejszego użytkownika |
» 2014-10-07 23:43:38 Dziękuje serdecznie użytkownikom za wsparcie i szybką odpowiedź.
Owszem miałem pewne podstawy na uczelni, aczkolwiek mocno okrojone, bez głębszego wytłumaczenia przez wykładowce, a tym bardziej zrozumienia przeze mnie i dlatego właśnie postanowiłem zajrzeć na ten kurs.
Jeszcze raz wielkie dzięki! |
|
« 1 » |