Napisz aplikację uruchamianą w konsoli Windows, która po uruchomieniu przyjmie dwie liczby całkowite, które będą zakresem z którego zostanie wylosowana liczba, a następnie program podając proste wskazówki pomoże nam zgadnąć liczbę. Po wpisaniu prawidłowej liczby należy wypisać komunikat o wpisaniu poprawnej odpowiedzi.
Wyobraźmy sobie listę liczb z zakresu [a, b]. Wylosowana liczba znajduje się na tej liście na pewnej pozycji. Najszybszym sposobem będzie określenie w której części listy szukać. Tutaj warto zastosować schemat Wyszukiwania Binarnego, ponieważ w każdym kroku będziemy odrzucać połowę pozostałych liczb na liście. Istnieje też szansa na trafienie liczby podczas zwężania zakresu.
Do programu zostaną dołączone biblioteki ctime oraz cstdlib, które pozwolą na skorzystanie z funkcji rand(), która będzie generowała pseudolosowe liczby na podstawie czasu systemu.
(8.) Na początek ustalamy kodowanie znaków w konsoli, dzięki temu polskie znaki nie będą pojawiały się w postaci znaczków. Następnie (9.) deklarujemy zmienne, które oznaczają kolejno: a - dolna granica zakresu, b - górna granica zakresu, g - ostatnie wpisane rozwiązanie i r oznaczające liczbę, którą użytkownik ma zgadnąć.
Po (11.) wprowadzeniu zmiennych (12.) uruchamia generator liczb losowych w zależności od czasu, a następnie (13.) losujemy liczbę do zgadnięcia. Należy pamiętać, że funkcja rand() zwróci wartości od 0 do RAND_MAX. W celu nie przekroczenia zakresu należy najpierw wyciągnąć modulo z dzielenia wylosowanej liczby przez różnice górnej granicy zakresu i dolnego. W ten sposób uzyskujemy liczbę z zakresu [0, b - a]. Teraz wystarczy dodać a, żeby mieć zakres [a, b].
Zasadnicze działanie ma (15.) pętla do ... while. To właśnie w niej odbywa się (16.) wczytanie kolejnej wpisanej odpowiedzi i o ile liczba (17.) nie została odgadnięta (18.) wypisany komunikat czy odpowiedź jest większa czy mniejsza. (19.) Pętla jest przerywana kiedy wpisana odpowiedź jest zgodna z wylosowaną wcześniej liczbą. Na sam koniec (20.) wypisujemy stosowny komunikat.