Witam. Robie program, ktory losuje liczbe od 1 do 1000, a zadaniem uzytkownika jest odgadniecie tej liczby. Przy błędnym strzale program wyswietla wskazowki: "Sprobuj mniejsza liczbe", albo "Sprobuj wieksza liczbe". Gdy podam np. liczbe 999, wskazowka wyswietla sie poprawnie, ale gdy po tym wpisze niepoprawne dane, wtedy na ekranie wyswietla sie:
"Upewnij się, ze podałeś liczbę.
Spróbuj większą liczbę"
Co zrobić, żeby pod ostrzezeniem wyswietlala sie poprawna wskazowka. Ponadto jestem ciekaw co robie zle w kodzie, na co zwracac uwage itd.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
int i=0;
int typ;
bool bad;
srand( time( NULL ) );
int liczba = (std::rand() % 1000) + 1;
std::cout << "Podaj liczbe od 1 do 1000: ";
do{
i++;
std::cin >> typ;
bad = std::cin.fail();
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
system("cls");
if(bad){
std::cout << "Upewnij sie, ze podales liczbe.\n";
}
if(typ>liczba){
std::cout << "Sprobuj mniejsza liczbe." << std::endl;
}
else if(typ<liczba){
std::cout << "Sprobuj wieksza liczbe." << std::endl;
}
}while(liczba!=typ);
system("cls");
std::cout << "Zgadles za " << i << " razem." << std::endl;
std::cout << "Poprawna odpowiedz to: " << liczba << std::endl;
return 0;
}
get_valid_number()