Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Василицк
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
1

Заполнить массив случайными значениями

04.05.2013, 16:07. Просмотров 836. Ответов 9
Метки нет (Все метки)

Написать программу, в которой с помощью генератора случайных значений сформировать 4 массива V1, V2, V3, V4, каждый из которых содержит 9 целочисленных значений. Элементы векторов формируются в диапазоне [-2*m; 3*m], где целое значение m>4 вводится с клавиатуры.
Начал писать задание, но почему то при заполнении массива, все числа одинаковые генерируются, помогите пожалуйста.
Вот мои каки маляки
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
32
#include "iostream"
#include "windows.h"
#include "stdlib.h"
#include "time.h"
using namespace std;
    int main ()
{
    int u,i,o,p,m; 
    double v1[9],v2[9],v3[9],v4[9]; 
    do
    {
        cout << "input m" << " ";
        cin >> m;
    if  ( m < 4 ) 
        cout << "exception, input correct value m \n";
    }
    while (m < 4) ;
    int q;
        q=9;
        cout << "array v1";
    
    for (u=0; u<q; u++)
    {
        srand((unsigned)time(NULL));
        v1[u]=double(rand()/RAND_MAX*(3*m-2*m)+2*m) ;
            cout << " " << v1[u] << ' ' ;
    }
 
 
    system ("pause");
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2013, 16:07
Ответы с готовыми решениями:

Заполнить массив случайными значениями
и так, мне надо сделать такую штуку: делаю массив (8 чисел), заполняю его...

Заполнить массив случайными значениями
Ребят помогите сделать чтоб вывод чисел был в разнобой,но до определенного...

Заполнить массив случайными значениями
Здравствуйте. Помогите, пожалуйста, с задачей. С++ Заполните массив из N...

Заполнить массив случайными неповторяющимися значениями
Уважаемые программисты, я новенькая в C++. Помогите, пожалуйста, с домашкой по...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию
создать одномерный массив, заполнить его случайными значениями, отсортировать...

9
BabyGluk
26 / 26 / 3
Регистрация: 10.04.2013
Сообщений: 167
04.05.2013, 16:41 2
после int main(){ пропиши srand(time(NULL));
0
Василицк
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
04.05.2013, 16:43  [ТС] 3
не берет почему то, как было так и осталось
0
Croessmah
++Ͻ
14739 / 8422 / 1596
Регистрация: 27.09.2012
Сообщений: 20,713
Записей в блоге: 2
Завершенные тесты: 1
04.05.2013, 16:51 4
Лучший ответ Сообщение было отмечено как решение

Решение

Попробуйте так:
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
32
33
#include "iostream"
#include "windows.h"
#include "stdlib.h"
#include "time.h"
using namespace std;
    int main ()
{
    srand(time(NULL));
    int u,i,o,p,m; 
    double v1[9],v2[9],v3[9],v4[9]; 
    do
    {
        cout << "input m" << " ";
        cin >> m;
    if  ( m < 4 ) 
        cout << "exception, input correct value m \n";
    }
    while (m < 4) ;
    int q;
        q=9;
        cout << "array v1";
    
    for (u=0; u<q; u++)
    {
        
        v1[u]=(double)rand()/RAND_MAX*(3.0*m-2.0*m)+2.0*m ;
            cout << " " << v1[u] << ' ' ;
    }
 
 
    system ("pause");
    return 0;
}
0
Василицк
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
04.05.2013, 16:56  [ТС] 5
так генерируется, а подскажите пожалуйста с целочисленными значениями как такое же сделать?
0
Croessmah
++Ͻ
14739 / 8422 / 1596
Регистрация: 27.09.2012
Сообщений: 20,713
Записей в блоге: 2
Завершенные тесты: 1
04.05.2013, 16:58 6
Цитата Сообщение от Василицк Посмотреть сообщение
такое же сделать?
такое же это что?
0
FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
04.05.2013, 16:58 7
1. Пишите srand не в цикле, а после main.
2. Попробуйте заменить

C++
1
v1[u]=double(rand()/RAND_MAX*(3*m-2*m)+2*m) ;
на

C++
1
v1[u]=rand()%(5*m + 1) - 2*m;
0
Василицк
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
04.05.2013, 17:03  [ТС] 8
Добавлено через 2 минуты
Цитата Сообщение от FreeMan108 Посмотреть сообщение
1. Пишите srand не в цикле, а после main.
2. Попробуйте заменить

C++
1
v1[u]=double(rand()/RAND_MAX*(3*m-2*m)+2*m) ;
на

C++
1
v1[u]=rand()%(5*m + 1) - 2*m;
так работает)
спасибо
0
Croessmah
++Ͻ
14739 / 8422 / 1596
Регистрация: 27.09.2012
Сообщений: 20,713
Записей в блоге: 2
Завершенные тесты: 1
04.05.2013, 17:03 9
Цитата Сообщение от Василицк Посмотреть сообщение
такое же условие только c Int вместо double
а вы вдумайтесь в формулу:
C++
1
rand()/RAND_MAX*(3*m-2*m)+2*m
rand()/RAND_MAX скорее всего равно 0.
Соответственно из всей формулы получаем только 2*m - поэтому числа и одинаковые у Вас
0
Василицк
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
04.05.2013, 17:08  [ТС] 10
Цитата Сообщение от Croessmah Посмотреть сообщение
а вы вдумайтесь в формулу:
C++
1
rand()/RAND_MAX*(3*m-2*m)+2*m
rand()/RAND_MAX скорее всего равно 0.
Соответственно из всей формулы получаем только 2*m - поэтому числа и одинаковые у Вас
да, я это заметил

Добавлено через 3 минуты
так как только учусь, смотрел по шаблону
C++
1
2
3
4
int Random(int min,int max)
{
   retrun ( rand()%(max-min)+min) ;
}
0
04.05.2013, 17:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2013, 17:08

Объявить массив из 20 элементов и заполнить его случайными значениями от -6 до 15
Этап 1: Объявить массив из 20 элементов и заполнить его случайными значениями...

Массив char, случайного размера, заполнить случайными значениями
Как заполнить его я понял. Но создать рандомно не получается. Пишет, что...

Заполнить массив случайными значениями, лежащими в диапазоне от 50 до 100
Массив предназначен для хранения значений весов двадцати человек. С помощью...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru