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

Разделить массив на 4 части - C++

Восстановить пароль Регистрация
 
gogaloh
8 / 9 / 0
Регистрация: 14.03.2015
Сообщений: 479
17.01.2016, 15:50     Разделить массив на 4 части #1
Прошу прощения за глупую просьбу, подскажите пожалуйста как разбить массив допустим из 40 элементов на 4 массива по 10 элементов.
Свои попытки увели меня в такие дебри, что вспоминать стыдно.
Сразу скажу, что получив Ваш ответ удивлюсь как это просто, но сам додуматься не могу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,508
Записей в блоге: 1
Завершенные тесты: 2
17.01.2016, 15:58     Разделить массив на 4 части #2
gogaloh,
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
#include <iostream>
#include <array>
#include <random>
#include <ctime>
 
using namespace std;
 
int main() {
    mt19937 gen(time(nullptr));
    uniform_int_distribution<int> dist(-100,100);
    const int n = 40;
    array<int,n> g_arr = {0};
    array<int,n/4> arr1 = {0};
    array<int,n/4> arr2 = {0};
    array<int,n/4> arr3 = {0};
    array<int,n/4> arr4 = {0};
    
    for( auto& i : g_arr )
        i = dist(gen);
    for(int i = 0; i < n/4; i++ ) {
        arr1[i] = g_arr[i];
        arr2[i] = g_arr[n-10+i];
        arr3[i] = g_arr[n-20+i];
        arr4[i] = g_arr[n-30+i];
    }
}
Вот так что ли?
antonboom
bmstu-team
 Аватар для antonboom
301 / 136 / 56
Регистрация: 10.01.2012
Сообщений: 419
Записей в блоге: 10
17.01.2016, 16:16     Разделить массив на 4 части #3
Не совсем понятно задание, но, как вариант, набросал
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
const int count_part = 4,   // Количество частей
          N = 40;           // Размер основного массива
 
int main() {
    srand(unsigned(time(NULL)));
 
    // Заполняем основной массив
    int *main_arr = new int[N];
    for (int i = 0; i < N; i++) {
        main_arr[i] = rand() % N - N / 2;
        cout << main_arr[i] << " ";
    }
 
    // Создаем и заполняем массив указателей на части (массивы)
    int **parts = new int*[count_part]; 
 
    int size_part = N / count_part;     // Размер части
    // Выделяем память под части и записываем их в массив частей
    int *arr1 = new int[size_part];
    parts[0] = arr1;
 
    int *arr2 = new int[size_part];
    parts[1] = arr2;
 
    int *arr3 = new int[size_part];
    parts[2] = arr3;
 
    int *arr4 = new int[size_part];
    parts[3] = arr4;
 
    // Делим основной массив на части   
    for (int j = 0; j < count_part; j++)
        for (int i = 0; i < size_part; i++)
            parts[j][i] = main_arr[size_part * j + i];
 
    // Выводим части
    cout << "\n\n\n";
    for (int i = 0; i < size_part; i++) {
        for (int j = 0; j < count_part; j++)
            cout << parts[j][i] << "\t";
        cout << endl;
    }
 
    system("pause");
 
    // Освобождаем память
    for (int j = 0; j < count_part; j++)
        delete[] parts[j];
    delete parts;
    delete main_arr;
}
Миниатюры
Разделить массив на 4 части  
antonboom
bmstu-team
 Аватар для antonboom
301 / 136 / 56
Регистрация: 10.01.2012
Сообщений: 419
Записей в блоге: 10
17.01.2016, 17:17     Разделить массив на 4 части #4
Соответственно, выделять память можно тоже в цикле. Это я как пример того, что можно записать адрес любого массива в массив частей.
C++
1
2
for (int i = 0; i < count_part; i++)
    parts[i] = new int[size_part]
Yandex
Объявления
17.01.2016, 17:17     Разделить массив на 4 части
Ответ Создать тему
Опции темы

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