Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2015, 11:29   #1
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию написать функцию, которая возвращает произвольное число в заданном диапазоне

написать функцию, которая возвращает произвольное число в заданном диапазоне
*( левая и правая граница диапазона входят) / Но у меня не правильно работает програма. где ошибка?
Код:
int RandomInRange(int from, int to)
{
    int value = rand() / RAND_MAX *(from - to) + to;
    return value;
    printf("Value%d\n", value);
}
 
int main()
{
    а откуда мы  берем RAND_MAX ?
    RandomInRange(10, 30);
    return 0;
}
vova_makr вне форума Ответить с цитированием
Старый 01.10.2015, 11:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
printf("Value%d\n", value);
Убери из функции.
В main напиши:
Код:
printf("Value=%d\n", RandomInRange(10, 30););
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2015, 11:55   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
int value = rand() / RAND_MAX *(from - to) + to;
Код:
int value = rand() % to + from;
Цитата:
а откуда мы берем RAND_MAX ?
оттуда же откуда и rand - из cstdlib (stdlib.h)

Пару советов в догонку:
1. познакомьтесь с функцией srand
2. если нужен генератор для серьезных вещей, есть более подходящие даже в стандарте
p51x вне форума Ответить с цитированием
Старый 01.10.2015, 12:12   #4
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
int value = rand() % to + from;

оттуда же откуда и rand - из cstdlib (stdlib.h)

Пару советов в догонку:
1. познакомьтесь с функцией srand
2. если нужен генератор для серьезных вещей, есть более подходящие даже в стандарте
Код:
int RandomInRange(int from, int to)
{
	int value = rand()* to + from;
	return value;
}

int main()
{
	printf("Value=%d\n", RandomInRange(10, 30));
	return 0;
}
вывод: value = 1240. Результат не правильный
vova_makr вне форума Ответить с цитированием
Старый 01.10.2015, 12:36   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

вы не отличаете % от * ?
p51x вне форума Ответить с цитированием
Старый 01.10.2015, 12:37   #6
vova_makr
Пользователь
 
Регистрация: 25.09.2015
Сообщений: 42
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
вы не отличаете % от * ?
ой, извините, это механическая ошибка....

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
int value = rand() % to + from;
смотрите, если взять to - 30 from - 10 тогда если макс выпадет 29 +10 будет больше 30 и я в диапазон не попадаю

Последний раз редактировалось Stilet; 01.10.2015 в 13:13.
vova_makr вне форума Ответить с цитированием
Старый 01.10.2015, 12:55   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
int value = rand() % (from - to) + from;
Так вроде пойдет
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принять с клавиатуры натуральное число n. Написать рекурсивную функцию, которая выведет все четные числа от n до 1. Андрей Иванов Помощь студентам 7 10.05.2015 10:31
написать функцию Glasn, которая возвращает значение True, если символ-аргумент, является гласной буквой русского алфавита (Паскаль Krugan Помощь студентам 8 15.05.2014 21:00
Создать функцию Max, которая находит в заданном целочисленном массиве максимальный элемень и возвращает его. массив передается в к devs Помощь студентам 2 21.12.2011 11:40
Протабулировать функцию y=экспонетна в степени x, с шагом h в заданном диапазоне systemv Помощь студентам 3 29.10.2010 13:48
Как создать функцию, которая возвращает результат - строку типа ansistring. atg C++ Builder 2 28.10.2009 18:20