Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 141, средняя оценка - 4.80
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
#1

Заполнение динамического массива случайными числами - C++

15.09.2010, 18:58. Просмотров 21020. Ответов 20
Метки нет (Все метки)

оч нужна помощь
написать в консоли программу: динаммический массив размерностью 20 заполняется случайными числами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2010, 18:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнение динамического массива случайными числами (C++):

Заполнение двумерного динамического массива случайными числами от 1 до N - C++
Не понимаю, в чём ошибка.. Можно ли вообще сравнивать for (int i = 0; mass!=NULL; i++) mass с NULL?? #include <fstream> #include...

Заполнение массива случайными числами - C++
Подскажите пожалуйста, как заполнить массив случайными числами в div-C++? Программа выдает ошибку=( #include <cstdlib> #include...

Заполнение массива случайными числами - C++
Извините за наиглупейший вопрос, но я забыл как задавать диапазон случайных чисел при заполнеии массива:wall:. Будьте добры, освежите мне...

Заполнение массива случайными числами - C++
Здравствуйте. Необходимо заполнить два массива случайными числами. Проблема состоит в том, что массивы заполняются одинаковыми...

Заполнение массива случайными числами - C++
Доброго времени суток. Перейду сразу к сути: Надо построить массив из 5000 целых случайных чисел и отсортировать его сортировкой Шелла, ...

Заполнение динамического массива числами от -50 до 50! - C++
Плиз помогите Заполненить динамический массив числами от -50 до 50!буду очень признателен

20
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.09.2010, 19:06 #2
Это типа 20-мерный массив?
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 20:01 #3
На уж:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <ctime>
using namespace std;
 
 
int main()
{
int* Arr;
Arr = new int[20]; // динамический массив твой
srand (time(NULL));
int num;
for(int i = 0;i < 20;i++)
{
   num = rand() % 20 + 1; // случайные числа от 0 до 20
Arr[i] = num;
}
for(int i = 0;i < 20;i++) {cout << Arr[i] << " " ;}
cout << endl;
delete []Arr;
 
    system("pause");
}
1
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 22:03  [ТС] #4
динамический массив твой

Спасибки, дорогой ты человек!
только некоторые слова мне совсем не знакомы. Нас так не учат!
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.09.2010, 22:16 #5
Если препод будет придератсо,скажы что он ламер!
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.09.2010, 22:20 #6
Тогда попробуем на чистом си...
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
#include <stdio.h>
#include <conio.h>
#include <time.h>
 
int main()
{
    int *Arr;
    int num;
    int i;
 
    Arr = (int *)malloc(20 * sizeof(int));
 
    srand (time(NULL));
 
    for (i = 0; i < 20; i++)
    {
        num = rand() % 20 + 1;
        Arr[i] = num;
    }
 
    for(i = 0; i < 20; i++)
        printf("%d ", Arr[i]);
 
    free(Arr);
 
    getch();
    return 0;
}
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 22:30 #7
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
#include <iostream>
#include <ctime> // здесь включается функция времени
using namespace std;
 
 
int main()
{
int* Arr; // Указатель на ячейки памяти в которых хранятся значения элементов массива
Arr = new int[20]; // динамический массив твой
srand (time(NULL)); //  Ето для генерирования случайного числа(используя текущее время)
int num;
//********************* Цикл выполняемый 20 раз,добавляет 20 случайных чисел
// в массив(каждый раз генерируя новое rand()%20 от 0 до 20)
for(int i = 0;i < 20;i++)
{
   num = rand() % 20 + 1; // случайные числа от 0 до 20
Arr[i] = num;
}
//**********************
for(int i = 0;i < 20;i++) {cout << Arr[i] << " " ;}
cout << endl;
delete []Arr; // стираем наш массив после использования чтобы освободить память
 
        system("pause");
}
rand()%20.....вместо 20 можешь вписать любое другое число. Если 100 то диапазон чисел будет от 0 до 100
ит.д.
Теперь наверное все понятно
1
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 22:31  [ТС] #8
C
1
2
3
#include <stdio.h>
#include <conio.h>
#include <time.h>
не знакомые мне библиотеки;


srand (time(NULL)) - эта строчка непонятна;

и эта free(Arr);

getch();
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.09.2010, 22:34 #9
#include <stdio.h> - стандартная библиотека ввода/вывода в Си.
#include <conio.h> - для getch(); - задержывает окно консоли.
#include <time.h> - для time(); -
Функция time в соответствии с системными часами возвращает
количество секунд, прошедших от 00:00:00 значения времени по
Гринвичу,т.е. с 1 января 1980 года. Возвращаемое значение хранит-
ся в расположении, заданном по timeptr. Если возввращаемое значе-
ние не запомнено, timeptr является NULL.
srand (time(NULL)) - зерно для rand(); - Функция rand возвращает псевдослучайное целое в интервале
от 0 до 32767
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.09.2010, 22:35 #10
Непрограммистка
Вам вообще на Си или на плюсах надо?
srand (time(NULL)) - функция, инициализирующая генератор случайных чисел, чтобы он не возвращал одно и то же значение. сама функция srand принимает число и инициализирует им генератор. А функция time(NULL) возвращает количество миллисекунд, прошедшее с первого января 1970 года. Таким образом при каждом запуске программы time() будет возвращать разные числа и функция srand() будет этими каждый раз разными числами инициализировать генераторю
free(Arr) освобождает память, выделенную с помощью malloc, на которую указывает указатель Arr
getch() ожидает нажатия любой клавиши, в данном случае используется как задержка перед завершением программы (и закрытием консоли).
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 22:37 #11
_getch это чтоб консоль не закрывалась после выполнения программы.Значит get character - получи символ
free(Arr) я так понимаю то же что delete [] Arr освобождает память от этого Arr
0
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 22:43  [ТС] #12
Ну теперь все более менее ясно! Огромное спасибо!
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
15.09.2010, 23:03 #13
Непрограммистка,
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
class RandomNumber {
    int nLimit;
public:
    RandomNumber(int lim) : nLimit(lim) {}
    int operator() () { return rand() % nLimit; }
};
 
int main(){
    int size = 20;
    int limit = 100;
    std::vector<int> vec(size);
    srand(time(NULL));
    std::generate(vec.begin(), vec.end(), RandomNumber(limit));
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
Преподу привет передавайте!
1
Непрограммистка
0 / 0 / 0
Регистрация: 15.09.2010
Сообщений: 45
15.09.2010, 23:18  [ТС] #14
easybudda, у него сердце станет, если я ему скажу что я это сама написала! Ведь он такому не научил даже! Хорошо бы прокоментировать строчки...
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
15.09.2010, 23:44 #15
Цитата Сообщение от Непрограммистка Посмотреть сообщение
Ведь он такому не научил даже! Хорошо бы прокоментировать строчки...
Если совсем непонятно, нужно хотябы в общих чертах про STL почитать. По сути набор стандартных шаблонных классов-контейнеров, а так же классов и функций для работы с ними.
vector - класс-контейнер, представляющий из себя динамический массив.
generate - функция для заполнения элементов класса-контейнера значениями
copy функция, копирующая элементы класса-контейнера
iterator "умный" указатель на элементы класса-контейнера
ostream_iterator "хитрый" указатель на выходной поток
RandomNumber - класс-функтор. Выдаёт случайные значения от 0 до limit, которые и присваиваются элементам динамического массива vec функцией generate...
1
15.09.2010, 23:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2010, 23:44
Привет! Вот еще темы с ответами:

Заполнение массива случайными числами в цикле - C++
Есть массив который заполняется случайным образом. как сделать чтобы он заполнялся случайным образом несколько раз и результаты выводились...

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

Заполнение двумерного массива случайными числами - C++
Подскажите как сделать, чтобы программа запрашивала ввод с клавиатуры или рандомно заполнение матрицы. ну например нажимаешь на 1 она...

Заполнение двумерного массива случайными числами - C++
Подскажите, пожалуйста, правильно ли я создал массив и правильно ли его заполняю? Скрин результата компиляции приложен. Подчеркнутые цифры...


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

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

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