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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 16:51   #1
Burlik
 
Аватар для Burlik
 
Регистрация: 02.04.2009
Сообщений: 3
По умолчанию random(), где ошибка?

Вот код где я хочу внести в массив случайные числа, а потом их отсортировать, подскажите: почему ругается на rendom?

Код:
#include  < stdio.h >
#include < iostream.h >
#include <stdlib.h>
#define SIZ_ARRAY       20      // размер массивов



int main(int argc, char* argv[])
{
        int     a[SIZ_ARRAY],   // исходный массив
                b[SIZ_ARRAY],   // отсортированный массив
                j,i;
		
        // заполнение массива а случайными числами на промежутке
        // от -50 до 50, вывод на монитор
        for(i=0;i< SIZ_ARRAY;i++){
                a[i]= random(100)-50;
                cout << a[i] << ' ';
        }
        cout <<  '\n';
        for(i=0;i< SIZ_ARRAY;i++){
                j=i;
                while((j> 0)&&(b[j-1]> a[i])){
                        b[j]=b[j-1];
                        j--;
                }
                b[j]=a[i];
        }
        // вывод на монитор результатов
                for(i=0;i< SIZ_ARRAY;i++)
                cout <<  b[i] <<  ' ';
        getchar();
        return 0;
}
ругается: error C2065 'random undeclared identifier...
эта функция входит в stdlib...в чем дело?

Последний раз редактировалось MaTBeu; 06.04.2009 в 18:22.
Burlik вне форума
Старый 03.04.2009, 16:57   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Нет такой функции в stdlib.h. Есть функция rand().

Цитата:
Описание

rand возвращает случайное число в диапазоне от 0 до
32767. Смотрите далее описание srand.

Использование

#include <stdlib.h>
int rand(void); /* ANSI */

Возвращаемое значение

Возвращает целый (int) результат.

Пример

Код:
       #include <stdio.h>
      #include <stdlib.h>
      main()
      {
        int i;
        for(i=0; i<20; i++);
        printf("i: %d rand(): %d\n", i, rand());
      }
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 03.04.2009, 17:03   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Поправка: функция random() есть, но только в Борландовских компиляторах.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 03.04.2009, 17:21   #4
Burlik
 
Аватар для Burlik
 
Регистрация: 02.04.2009
Сообщений: 3
По умолчанию

Спасибо, знатоки!!!!
Все заработало!!!
Burlik вне форума
Старый 03.04.2009, 17:22   #5
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

А разве функция рандома принимает какие-нибудь параметры?
Цитата:
Код:
a[i]= random(100)-50;
Она вроде бы возвращает значение от 0 до 25. с чем-то тысяч... если ты хочешь получить значения от 0 до 100, то надо писать
random()%101 (т.е. возвращает остаток от деления случайного числа на 101, а он может быть в диапазоне от 0 до 100 (включительно). ну и -50, если тебе надо от -50 до 50.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума
Старый 03.04.2009, 17:28   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от ROD
А разве функция рандома принимает какие-нибудь параметры?
Да, принимает.

Код:
#if defined(__cplusplus)
inline int  _RTLENTRY random(int __num)
                       { return __num ? (int)(_lrand()%(__num)) : 0; }
#else /* __cplusplus */
#define random(__num) (__num ? (int)(_lrand()%(__num)) : 0)
#endif  /* __cplusplus  */
А то, что вы имели в виду, это для rand()
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 03.04.2009, 17:35   #7
Burlik
 
Аватар для Burlik
 
Регистрация: 02.04.2009
Сообщений: 3
По умолчанию

у меня не Борланд и прокатил вариант rand()%100
Burlik вне форума
Старый 03.04.2009, 18:19   #8
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Поправка: функция random() есть, но только в Борландовских компиляторах.
Опять привязываемся к компилятору. В нем может быть все, что угодно его разработчику. Но по стандарту нет такой функции
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 03.04.2009, 18:25   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Blade, ну, кажется, мы сейчас говорим не о стандартах, а о конкретном листинге, приведенном ТС.
И факт в том, что в борландовском компиляторе он будет работать. )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 03.04.2009, 19:15   #10
Volchara
Пользователь
 
Аватар для Volchara
 
Регистрация: 25.03.2009
Сообщений: 55
По умолчанию

Если вы имеете что - то против rand() создайте функцию random ()...

Код:
int random (int r)
{
       return rand()%r;
}
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Volchara вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где ошибка ? mouse697 Помощь студентам 2 22.03.2009 15:01
Подскажите где ошибка? lubafffka Помощь студентам 2 17.12.2008 19:02
Где ошибка? [Smarik] Общие вопросы Delphi 5 01.04.2008 09:56
Где ошибка? jarded Общие вопросы C/C++ 2 01.06.2007 15:10