Форум программистов, компьютерный форум CyberForum.ru

То работает, то не работает. Массив из случайных вещественных чисел - C++

Восстановить пароль Регистрация
 
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
10.10.2011, 11:35     То работает, то не работает. Массив из случайных вещественных чисел #1
Добрый день всем.
Я пытался сделать следующее: создать массив из вещественных чисел. Ввести туда числа случайным образом. А потом вывести их на экран. Записал так:
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
26
27
28
29
30
31
#include <conio.h> 
#include <stdio.h>
#include <time.h> //Чтобы использовать srand(time(NULL))
int main() 
{       
    int i, r;
    double array[5], d;
 
    srand(time(NULL));
 
    //rand()%N - целое случайное число из отрезка [0;(N-1)]
    //rand()%N+M - целое случайное число из отрезка [M;(N-1)+M]
        
    for (i=0; i<5; i++)
    {
        r=rand()%89901+100; //Целое случайное число из отрезка [100; 90000]
        d=r;    
        d=d/100;
        array[i]=d;
    }
 
    for (i=0; i<5; i++)
    {
        printf("%6.2f", array[i]);
        printf("\n");
    }
        
    printf("\n");           
    getch();  
    return 0; 
}
Вначале всё заработало. Потом я решил сделать массив чуть побольше и везде число 5 заменил на 53. При компиляции он выдал 2 ошибки:
error C3861: srand: идентификатор не найден
error C3861: rand: идентификатор не найден

Я ничего не пойму. Я всего лишь размер массива изменил с 5 до 53 и всё. Что случилось то? Дальше ещё. Я поменял, сделал как было, массив длины 5. Но ошибки всё равно остались. Хотя 1 минуту назад тот же самый код работал. Я вообще ничего не пойму. Подскажите кто-нибудь.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
10.10.2011, 11:37     То работает, то не работает. Массив из случайных вещественных чисел #2
добавьте #include <stdlib.h> в начало
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
10.10.2011, 11:50  [ТС]     То работает, то не работает. Массив из случайных вещественных чисел #3
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
добавьте #include <stdlib.h> в начало
Добавил. Всё заработало!
А что такое stdlib.h ? Зачем он нужен?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.10.2011, 11:56     То работает, то не работает. Массив из случайных вещественных чисел #4
Библиотека стандартных функций, содержащая в том числе и rand().
Slimmy
 Аватар для Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
10.10.2011, 11:56     То работает, то не работает. Массив из случайных вещественных чисел #5
Цитата Сообщение от Alex Z Посмотреть сообщение
Добавил. Всё заработало!
А что такое stdlib.h ? Зачем он нужен?
Да снизойдет на Вас мудрость ПедеВикии
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
10.10.2011, 12:14  [ТС]     То работает, то не работает. Массив из случайных вещественных чисел #6
Странно. А я думал, что для использования случайных чисел надо: вначале подключить:
C++
1
#include <time.h> //Чтобы использовать srand(time(NULL))
Потом написать:
C++
1
2
3
4
srand(time(NULL));
//randomize(); //Инициализация генератора случайных чисел.
//Вроде бы randomize(); это функция С, и на С++ она не пойдет. Вначале надо
//подключить библиотеку #include <time.h> а потом вместо randomize(); напиcать srand(time(NULL));
А потом уже исрользовать rand():
C++
1
rand()%3+1; //целое случайное число от 1 до 3 включительно
Вот это у меня заработало без #include <stdlib.h>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
#include <conio.h> 
#include <time.h> //Чтобы использовать srand(time(NULL))
int main() 
{
    int i, r;
 
    srand(time(NULL));
 
    //rand()%N - целое случайное число из отрезка [0;(N-1)]
    //rand()%N+M - целое случайное число из отрезка [M;(N-1)+M]
 
    for (i=1; i<=9; i++)
    {
        r=rand()%3+1; //целое случайное число от 1 до 3 включительно
        cout<<"Slychainoe chislo "<<i<<" = "<<r<<endl;
    }
                                                               
    cout<<endl; 
    getch();  
    return 0; 
}
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
10.10.2011, 12:23     То работает, то не работает. Массив из случайных вещественных чисел #7
Цитата Сообщение от Alex Z Посмотреть сообщение
Вот это у меня заработало без #include <stdlib.h>
потому что здесь вы подключили заголовок iostream который включает в себя stdlib.h
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.10.2011, 12:26     То работает, то не работает. Массив из случайных вещественных чисел #8
time.h нужен для функции time().
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2011, 12:31     То работает, то не работает. Массив из случайных вещественных чисел
Еще ссылки по теме:

Как работает генерация случайных чисел в приведенном коде C++
Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел C++
C++ Не работает генератор случайных чисел

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

Или воспользуйтесь поиском по форуму:
Alex Z
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
10.10.2011, 12:31  [ТС]     То работает, то не работает. Массив из случайных вещественных чисел #9
Всё понял. Спасибо всем.
Yandex
Объявления
10.10.2011, 12:31     То работает, то не работает. Массив из случайных вещественных чисел
Ответ Создать тему
Опции темы

Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru