0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 4
1

Расписать процедуру высчитывания ближайшего числа к случайному

14.06.2016, 10:34. Показов 1253. Ответов 7
Метки нет (Все метки)

Ребята, пишу свою мини-игру. И возникла загвоздка.
Суть игры: чье число окажется ближе к случайно выпавшему числу, тот победил. Диапазон 1-99 Мы играем против Компьютера. Скажите как математически расписать процедуру высчитывания ближайшего числа. И как сделать чтобы рандомное число все время менялось?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2016, 10:34
Ответы с готовыми решениями:

необходимо расписать процедуру..
в общем само задание : среди элементов заданной строки таблицы найти самый левый из тех, которые...

Округление целого числа до ближайшего числа кратного 20
Как "округлить" целочисленное число. Например есть число 27 . Его надо округлить до ближайшего...

Поиск ближайшего числа
В таблице ести поле с числом(float) как с помошью SQL найти запись где значение этого поля ближе...

Округление до ближайшего числа
Есть тип double, и есть установка, которая указывает какой шаг должен быть кратен для числа после...

7
10 / 10 / 3
Регистрация: 02.07.2013
Сообщений: 52
14.06.2016, 10:53 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

constanta_ff,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream.h>
#include <math.h>
using namespace std;
 
int main()
{
    const int a = 1;
    const int b = 99;
    int x, y, z; // x - вводим мы, y и z - генерирует машина (z - то, что пытаемся отгадать)
    do {
        cout << "Введите число:" << endl;
        cin >> x;
    } while (x < a || x > b); // это просто проверка на введённое число
    
    srand(time(NULL));
    y = rand() % (b - a) + a;   //генерируем y, где он будет равен остатку от деления на 98 (то есть от 0 до 98), но сдвинутый на 1 (то есть от 1 до 99)
                                //если нужно изменить диапазон просто меняем объявленные в начале константы
    z = rand() % (b - a) + a;   //генерируем угадываемое число по тому же принципу
    if (abs(x - z) < abs(y - z))
        cout << "Поздравляем, вы победили!" << endl;
    else
        cout << "К сожалению компьютер оказался ближе к ответу" << endl;
    cout << "Вы ввели: " << x << endl << "ПК предугадал: " << y << endl << "Искомое число: " << z << endl;   //вывод чисел для красоты
    return 0;
}
Я вижу это как-то так. Проверить не на чем, поэтому надеемся, на мою пряморукость.
P.S. Для отображения кириллицы в виндовой командной строке и паузы после выполнения программы необходимо дописать некоторый код. Мой вариант под *nix
3
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
14.06.2016, 12:24 3
l_lenskaya, библиотеку <ctime> для time() и <cstdlib> srand() подключить забыли. ну и русский будет крокозябрами отображаться, нужно прописать что-то вроде
C++
1
setlocale (0, "rus");
0
10 / 10 / 3
Регистрация: 02.07.2013
Сообщений: 52
14.06.2016, 12:42 4
lawr, В Linux'е все прекрасно с русским будет, о чем написано выше.

Добавлено через 10 минут
lawr, И ещё кое что, вот здесь можно посмотреть как проект выполняется без ваших доп библиотек прекрасно
0
1179 / 892 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
14.06.2016, 13:23 5
l_lenskaya, потому что повезло с реализацией конкретного компилятора и данные заголовки подключаются неявно где то внутри iostream и/или math.h . Нужно явно подключать заголовки, если Вы хотите, что бы код компилировался на любом вменяемом компиляторе.
Пример: https://ideone.com/HbySF0
0
10 / 10 / 3
Регистрация: 02.07.2013
Сообщений: 52
25.06.2016, 13:10 6
Toshkarik, Может, конечно, это мовитон, но мне какая разница как будет компилироваться на другой машине мой код, если я единственный разработчик и давать кому-то исходники не планирую?
0
1179 / 892 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
25.06.2016, 13:21 7
l_lenskaya, Не обязательно на другой машине. Обновите компилятор и код перестанет компилироваться.
Во-вторых, Вы делитесь этим кодом на форуме. В стандарте явно указано, где и какая функция лежит. Который, по большей части, и создан для обмена между программистами.
А так да - Вы вольны в своих действиях.
0
10 / 10 / 3
Регистрация: 02.07.2013
Сообщений: 52
28.06.2016, 16:18 8
Toshkarik, Ясно было написано: "Проверить не на чем, поэтому надеемся, на мою пряморукость.
P.S. Для отображения кириллицы в виндовой командной строке и паузы после выполнения программы необходимо дописать некоторый код. Мой вариант под *nix". Написано все по памяти, так что претензии считаю неуместными.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2016, 16:18
Помогаю со студенческими работами здесь

Поиск ближайшего простого числа
Ввести целое число N &gt; 1. Если оно является простым, то есть не имеет положительных делителей,...

Округление до ближайшего числа из массива
Доброго времени суток. Подскажите, как можно реализовать округление до ближайших чисел из...

Округление числа до ближайшего целого
Часто видел в темах в вопросом &quot;как округлить до ближайшего целого&quot; ответы вроде &quot;использовать...

Поиск ближайшего числа в массиве
Смысл заключается в следующем: дана шкала в миллиметрах и показатель уровня заполнения емкости,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru