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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 23:22   #1
spirit_trapper
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 19
Восклицание "random" в UNIX

В общем, есть проблема.
В коде нужен генератор случайных чисел. Я создаю пользовательскую функцию. Вот она:

void RandomArr (double M[],double n, double min,double max);

Данная функция включает в себя массив из 18 чисел (которые и должны быть случайными), минимальное и максимальное из подбираемых значений.

Ниже, в описании функции, я описываю код генератора случайных чисел:

void RandomArr (double M[], double n, double min, double max)
{
for(int i=0;i<n;i++)
{M[i]=random(max-min+1)+min;}
}
На что g++ ругается вот так:

/usr/include/stdlib.h: In function ‘void RandomArr(double*, double, double, double)’:
/usr/include/stdlib.h:327: error: too many arguments to function ‘long int random()’

Вопрос: почему он говорит что слишком много аргументов для функции? Где ошибка?
Задаю этот вопрос не просто так: в Борланде подобная ошибка не выскакивает - значит дело в Юниксе (или в моих руках).
Заранее спасибо.

Последний раз редактировалось spirit_trapper; 04.12.2009 в 23:24.
spirit_trapper вне форума Ответить с цитированием
Старый 05.12.2009, 00:39   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

честно говоря не сталкивался с random(), чаще всего используется rand()
Код:
long int random(int);
типы должны быть целые(int,short...) , а ты кидаешь в генератор вещественные
случайное вещественное число можно сделать делением двух целых случ чисел
Код:
double a;
a = (rand()%5+1)/(rand()%10+1)  // случ число от 1 до 5 / случ число от 1 до 10

Последний раз редактировалось NiCola999; 05.12.2009 в 00:49.
NiCola999 вне форума Ответить с цитированием
Старый 05.12.2009, 01:03   #3
spirit_trapper
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
честно говоря не сталкивался с random(), чаще всего используется rand()
Код:
long int random(int);
типы должны быть целые(int,short...) , а ты кидаешь в генератор вещественные
случайное вещественное число можно сделать делением двух целых случ чисел
Код:
double a;
a = (rand()%5+1)/(rand()%10+1)  // случ число от 1 до 5 / случ число от 1 до 10
Блин, забыл написать что числа вещественные. Спасибо. Сейчас попробую.
spirit_trapper вне форума Ответить с цитированием
Старый 05.12.2009, 01:05   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

too many arguments to function ‘long int random()
очевидно, что она вообще не принимает параметров
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Функция "Random" в Паскале... Вадим Буренков Помощь студентам 1 07.03.2009 17:43
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51