Niejasność ze zmiennymi w grze w zgadywanie liczby
Ostatnio zmodyfikowano 2018-07-14 23:21
HamesJetfield Temat założony przez niniejszego użytkownika |
Niejasność ze zmiennymi w grze w zgadywanie liczby » 2018-07-14 23:18:04 Witam, napisałem program, który w założeniu ma działać w następujący sposób: komputer losuje liczbę z przedziału 1-100, a użytkownik ma tą liczbę zgadnąć. Jeżeli podał liczbę za dużą, to program wypisuje "za duża" a jak za mała to " za mała" i tak aż do osiągnięcia celu. Zrobiłem dwie funkcje: wczytującą, która sprawdza czy użytkownik wpisał liczbę całkowitą, oraz sprawdzającą czy liczba należy do przedziału 1-100.
#include <iostream> #include <cstdlib> using namespace std; int x,z; void wprowadzenie (int a) { cin>>a; if(!cin) { cout<<"To nie jest liczba calkowita!"<<endl; exit(0); } } void sprawdanie(int a) {
if (a<0||a>100) { cout<<"Liczba musi byc z zakresu 1-100!"<<endl; exit(0); }
}
int main() {
cout << "Witaj" << endl; cout << "Zgadnij liczbe z zakresu 1-100" << endl; x=rand()%100 + 1; z=1000; while (z!=x){ wprowadzenie(z); sprawdanie(z); if(z>x) { cout<<"za duzo"<<endl; } else { cout<<"za malo"<<endl; } }
cout<<"Gratulacje!"<<endl; return 0; }
Moje pytanie dotyczy funkcji wczytywanie , która działa tylko jeżeli wpisane jest w nią
void wprowadzenie (int a) { cin>>z; if(!cin) { cout<<"To nie jest liczba calkowita!"<<endl; exit(0); } }
zamiast cin>>a; Przy drugiej opcji bez względu na wpisaną wartość, wyskakuje komunikat, że liczba nie należy do 1-100. Dlaczego się tak dzieje? Z góry dziękuję za pomoc. |
|
pekfos |
» 2018-07-14 23:21:22 |
|
« 1 » |