Cześć,
jestem dopiero początkujący jednak natknąłem się na problem, mianowicie rand() cały czas losuje mi 0 lub 1, niezależnie od przedziału liczb jakie wybiorę. Tutaj kod który napisalem:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand ( time( NULL ) );
int a;
a = ((rand() % 1000) + 1);
int b;
int d;
bool c = cin.fail();
cout << "Sprobuj odgadnac wylosowana liczbe :)" <<endl;
do
{
cin >> a;
cin.clear();
cin.ignore(1000,'\n');
d=d+1;
if (b>a)
cout << "Liczba jest wieksza, probuj dalej." <<endl;
else if (b<a)
cout << "Liczba jest mniejsza, probuj dalej."<<endl;
else if (b==a)
{cout << "Brawo! Odgadles wylosowana liczbe! " <<endl;
cout << "Ilosc twoich prob to: " << d;
return 0;
}
}while (b!=a || c==1);
}
Przepraszam jeśli kod wkleiłem w zle miejsce
polecenie:
1. Program losuje liczbę z przedziału od 1 do 1000.
2. Użytkownik zgaduje liczbę, która została wylosowana.
3. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i powraca do kroku 2.
4. Jeżeli gracz trafi liczbę wylosowaną to progam kończy działanie, wypisując na ekran wylosowaną liczbę oraz liczbę 'strzałów', które oddał gracz.
Gra ma być zabezpieczona przed możliwością wprowadzenia błędnych wartości liczbowych.