С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
1

Задать размерность вектору генератором случайных чисел

19.03.2016, 16:08. Просмотров 309. Ответов 8
Метки с++ (Все метки)

Привет) Ситуация следующая:

Динамический вектор.
Написать программу по формированию динамического вектора целого типа. Имя вектора – Massiv. Размерность вектора задается генератором случайных чисел (размерность примерно 20÷40 элементов). Каждый элемент вектора задается генератором случайных чисел в диапазоне от -100 до 99. Распечатать вектор по 10 элементов в строке (получить аккуратную таблицу). Далее с вектором Massiv продолжить работу по вариантам.
Вар. 14 Ввести в начало вектора Massiv первые пять элементов со значением 100.

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
34
35
36
37
38
39
40
41
#include <iostream>
#include <clocale>
#include <ctime>
 
using namespace std;
 
int main()
{
    setlocale (0,"");
    srand((unsigned)time(NULL));
 
    int n, i;
    n = 10;
 
    //1. Использование оператора new для создания динамического вектора.
 
    //создание - выделение памяти под одномерный массив
    int *Massiv;
    Massiv = new int[n];
 
    //присвоения начальных значений элементам
    for(i=0; i<n; i++) Massiv[i] = (int)(rand()%200-99);
 
    //замена пять первых элемнтов на 100
    cout<<"Замена первых пяти элементов на 100\n";
    
    for(i=0; i<5; i++)
    {
        Massiv[i]=100;
    }
 
        //печать
    for(i=0; i<n; i++)
    cout<<" "<<Massiv[i];
    cout<<endl;
 
        //удаление
    delete[] Massiv; //освобождаем память
 
    return 0;
}
Получается осталось сделать следующее, на сколько я понял надо скопировать мой вектор и с помощью генератора случайных чисел продублировать его рандомное кол-во раз...Подскажите пожалуйста и оставьте коммент для меня, чтобы я знал)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2016, 16:08
Ответы с готовыми решениями:

Работа с генератором случайных чисел
Здравствуйте, уважаемые форумчане. Прошу помощи вот с такой задачей, не могу...

Программа с генератором случайных чисел
Написать программу которая генерирует 2 целых числа от 0 до 9 и спрашивает...

Как работать с генератором случайных чисел
В интернете нашёл мешалку для vector'a #include &lt;algorithm&gt; #include...

Описать функции элементов одномерного массива с генератором случайных чисел
Описать функции формирования элементов одномерного массива с помощью генератора...

Массив: Получить массив, элементы которого задаются генератором случайных чисел в диапазоне от 1 до 40.
Нужен одномерный массив, который задается генератором рандомных чисел в...

8
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 616
19.03.2016, 17:58 2
Не понял, хочешь работать с динамическим массивом как вектор, или все таки использовать настоящий вектор, так вектор без слова Динамический динамичен
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
19.03.2016, 18:21 3
Цитата Сообщение от ShmelVG Посмотреть сообщение
осталось сделать следующее
...
Цитата Сообщение от ShmelVG Посмотреть сообщение
Размерность вектора задается генератором случайных чисел (размерность примерно 20÷40 элементов).
0
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
19.03.2016, 18:38  [ТС] 4
Логичнее конечно было бы первое))У меня ни как не получается

C++
1
2
3
4
5
6
7
j=(int)(rand()%20+20);
    for(i=0; i<=j; i++)
    {
        int j = (int) rand()%20+20;
 
        cout<<"\n"<<" "<<Massiv[i]<<endl;
    }
Но этот ужас сами знаете как выливается, не знаю как свой вектор в строчку повторить в столбик рандомное кол-во раз))
0
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 616
19.03.2016, 18:41 5
с массивом сам мути, вектор работает так, лишние переменные можно сократить
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <vector>
//#include <list>
#include <cstdlib>
#include <iomanip>
using namespace std;
 
int main ()
{
   setlocale(LC_ALL,"RUS");
   vector <int> v;
   cout << "Размер= " << v.size() << "\n";
   int c;
   cout << "Введите кол-во элементов: ";
   cin >> c;
   for (int i=0; i<c; i++)
   {v.push_back(rand()%200-99);}
 
   cout << "Размер= " << v.size() << "\n";
   vector<int>:: iterator p=v.begin(); // доступ через итератор
   int i = 0;
   while (p!= v.end())
   { cout << setw(4) << *p ; 
   if (!((i+1)%10)) cout << endl; 
   ++i;
   ++p;}
   cout << "\n" << endl;
 
 
    int n,k,r;
    cout << "Положение: "; cin >> n;
    cout << "Вводимый элемент: "; cin >> k;
    cout << "Кол-во вводимых элементов: "; cin >> r;
    v.insert(v.begin()+n,r,k);
    cout <<  "После вставки: \n";
    i=0;
    for (p = v.begin(); p != v.end(); ++p)
    {
    cout << setw(4) << *p ; 
   if (!((i+1)%10)) cout << endl; 
   ++i;
    }
    cout << "\n";
 
    int f;
    int l;
    cout << "Положение: "; cin >> f;
    cout << "Кол-во удаляемых: "; cin >> l;
     
    cout << "Размер= " << v.size() << "\n";
//  cout << "Значения введенного= " << l+f <<"\n";
      
    if (l+f < v.size())   v.erase(v.begin() + f, v.begin()+l+f);
      else v.erase(v.begin() + f, v.end());
      
    
    cout << "После удаления: " << "\n";
    i=0;
    for (p=v.begin(); p != v.end(); ++p)
    {
    cout << setw(4) << *p ; 
    if (!((i+1)%10)) cout << endl;  
   ++i;
    }
    return 0;
 }
0
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
19.03.2016, 19:54  [ТС] 6
Не много не то(
0
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 616
19.03.2016, 20:14 7
до указателей и векторов дорости надо еще, это не на готовеньком учиться

Добавлено через 6 минут
одна очень полезная строка все же есть
Распечатать вектор по 10 элементов в строке (получить аккуратную таблицу).
C++
1
 if (!((i+1)%10)) cout << endl;
0
ShmelVG
23 / 20 / 13
Регистрация: 27.11.2015
Сообщений: 482
Завершенные тесты: 1
19.03.2016, 20:20  [ТС] 8
Согласен, что есть, то и делаю))...Неужели нету способа по проще, по сути просто скопировать строчку и напечатать её 10 раз в столбик?)))
0
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 616
19.03.2016, 22:42 9
Можно же просто, если постараться
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main(){
   int m[100];
   for(int i=0;i<100;i++){
      cout << setw(4) << (m[i]=rand()%200-99);
      if(!((i+1)%10)) cout << endl;
   }
   return 0;
}
0
19.03.2016, 22:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2016, 22:42

Задать массив из 10 вещественных чисел используя датчик случайных чисел
Подсчитать количество четных значений. Найти минимальный и максимальный...

Как задать диапазон случайных чисел?
Мне дана формула для диапазона случайных чисел - 10i + 20, где i мой вариант....

Отладка кода с генератором случайных функций
Есть код генератора рандома для вызова одной из функций #include &lt;iostream&gt;...


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

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

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