Pętla do ... while (praca domowa)
Ostatnio zmodyfikowano 2015-11-11 22:25
Bidi Temat założony przez niniejszego użytkownika |
Pętla do ... while (praca domowa) » 2015-11-11 20:09:44 Napisz program, który wczyta liczbę, a następnie wypisze ją na ekranie. Zabezpiecz przed wczytaniem nieprawidłowej liczby. Wykorzystaj do tego celu wiedzę z jednego z poprzednich rozdziałów. Sposób działania programu: 1. Podaj liczbę 2. Jeżeli błąd, wróć do kroku 1. 3. Wypisz liczbę, która została podana. #include <iostream> using namespace std;
int main() { float a; bool b; cout << "Podaj liczbe = "; cin >> a; b = cin.good(); cin.clear(); cin.sync(); if( b = 0 ) do { cout << "Podaj liczbe = "; cin >> a; b = cin.good(); cin.clear(); cin.sync(); } while( b = 1 ); cout << "Podales liczbe = " << a; return 0; }
Program gdy wpisuje coś innego niż liczba zamiast spytać mnie znów o liczbę jak powinien (przynajmniej mi się tak wydaje ) pokazuje mi że podałem liczbę 0 Dlaczego? |
|
BadBullPL |
» 2015-11-11 20:25:35 if( b = 0 ) while( b = 1 ); |
Złe operatory. = to operator przypisania, == to operator porównania. |
|
Bidi Temat założony przez niniejszego użytkownika |
» 2015-11-11 20:31:06 No dobra zmieniłem = w nawiasach na == i teraz gdy napisze coś innego niż liczba to na początku działa dobrze bo pyta mnie o liczbę znów tyle że potem mnie pyta bez końca o liczbe i cokolwiek napisze on i tak spyta znów o liczbe |
|
Master_Yoga |
» 2015-11-11 20:32:32 po pierwsze mylisz operatory. | = | - operator przypisania przykład int liczba = 12; | == | - operator porównania czy_liczba == 12 ?
popraw while( b == 1 ); i if( b == 0 ) i powinno ci działać |
|
carlosmay |
» 2015-11-11 20:37:56 |
|
Master_Yoga |
» 2015-11-11 20:38:28 po pierwsze po if klamerki, a warunek kończący ma wyglądać tak while(b == 0)
dowód:
http://www.speedyshare.com/G78AM/33fdc4a2/download/1121.png |
|
Bidi Temat założony przez niniejszego użytkownika |
» 2015-11-11 20:41:50 Master_Yoga mógłbyś pokazać kod?
|
|
carlosmay |
» 2015-11-11 20:43:40 po pierwsze po if klamerki |
klamerki w tym przypadku nie są konieczne, bo if wykonuje tylko pętle, czyli jedną instrukcję. |
|
« 1 » 2 3 |