Oto jest kod :
##include<iostream>
#include <cstdlib>
#include <ctime>
int main() {
using namespace std;
cout << "Losowanie liczb.";
srand(time(NULL));
int number;
int fate;
fate = rand() % 20 + 1;
int i = 0;
for (;;) {
cout << "Podaj liczbe:";
while (!(cin >> number)) {
cout<<"Niepoprawna liczba.jescze raz:";
cin.clear();
cin.sync();
}
++i;
if ((number > 20) || (number < 1)) {
cout << "Liczba nie z tego przedzialu!" << endl;
i = i - 1;
} else if (number < fate) {
cout << "Za malo,sprobuj jeszcze raz(" << i << " proba):" << endl;
} else if (number > fate) {
cout << "Za duzo.jeszcze raz(" << i << " proba):" << endl;
} else if (number == fate) {
cout << "Wreszcie (za" << i << " proba)";
break;
}
}
}
czy zostal wykonany poprawnie,program ?
http://uploads.im/yLm1N.png -> i jak temu zaradzic,po wpisaniu np.3f program wypisuje komunikat bledu ,a nie chce zeby to robil jak temu zaradzic?
a to tak na marginesie: dlaczego warunek while (!(cin >>number)) wpisuje wartosc do number przeciez on jest wydzielony tylko po to aby w razie bledu wyczyscic