Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pętla do ... while (praca domowa)

Ostatnio zmodyfikowano 2015-11-11 22:25
Autor Wiadomość
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.
C/C++
#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?
P-139963
BadBullPL
» 2015-11-11 20:25:35
if( b = 0 )
while( b = 1 );
Złe operatory. = to operator przypisania, == to operator porównania.
P-139964
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
P-139966
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ć
P-139967
carlosmay
» 2015-11-11 20:37:56
C/C++
cin.sync(); // zamien na cin.ignore(999, '\n');
P-139968
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
P-139969
Bidi
Temat założony przez niniejszego użytkownika
» 2015-11-11 20:41:50
Master_Yoga mógłbyś pokazać kod?
P-139970
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ę.
P-139971
« 1 » 2 3
  Strona 1 z 3 Następna strona