Losowanie liczb i sprawdzenie jaka została wylosowana

0

Mam problem z tym prostym kodem.. jeśli program wylosuje mi liczbe np : 230 a ja wpiszę 231 to wyskakuje że liczba jest za mała jeśli wpisze na przykład sporo większą liczbę 999 to dopiero wtedy wyskakuje że liczba jest za duża.
Jak poprawić ten kod żeby działał poprawnie ?

#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
	int a;
    srand( time( NULL ) );
    std::cout << "Wylosowanie pierwsze: " <<(( std::rand() % 1000 ) + 1 ) << std::endl;
    int liczba =( std::rand() % 1000 ) + 1;
    do
    {
	
    	std::cout << "Podaj swoja liczbe: " << std::endl;
    	std::cin >> a;
    	if(a > liczba)
		{
	
    	std::cout << "Twoja liczba jest za duza "<< std::endl;
		}
    		if(a<liczba)
{
			
			
		
    		std::cout << "Twoja liczba jest za mala " <<std::endl;
			}
	}while(a == liczba);
          std::cout << "Brawo wygrales " << std::endl;
	return 0;
} 
4
     std::cout << "Wylosowanie pierwsze: " <<(( std::rand() % 1000 ) + 1 ) << std::endl;
    int liczba =( std::rand() % 1000 ) + 1;

przeciez tutaj losujesz DWA razy. wez liczbe przed cout i zamiast tego randa wpisz tam go w cout. Na takiej zasadzie (bo pewnie nie zrozumiale napisalem... poniedzialek... rano)

    int liczba =( std::rand() % 1000 ) + 1; 
    std::cout << "Wylosowanie pierwsze: " << liczba << std::endl;
3
std::cout << "Wylosowanie pierwsze: " <<(( std::rand() % 1000 ) + 1 ) << std::endl;
int liczba =( std::rand() % 1000 ) + 1;

Losujesz 2 razy, jedną liczbę losujesz i wyświetlasz, drugą liczbę losujesz i zapisujesz. Zamień na:

int liczba =( std::rand() % 1000 ) + 1;
std::cout << "Wylosowanie pierwsze: " << liczba << std::endl;
0

dzięki chłopaki :)

A jeszcze takie małe pytanko. Jak zrobic żeby zliczało ilość prób odgadnięcia tej liczby ?

0

Jedna zmienna i pętla.

1

Przed pętlą stwórz sobie zmienną, domyślnie o wartości 0 i rozpoczynając każdą iterację pętli zwiększaj jej wartość o 1.

int proby = 0
do {
++proby;
...
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1