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

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

Войти
Регистрация
Восстановить пароль
 
gogaloh
9 / 10 / 0
Регистрация: 14.03.2015
Сообщений: 547
#1

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

17.01.2016, 15:50. Просмотров 448. Ответов 3
Метки нет (Все метки)

Прошу прощения за глупую просьбу, подскажите пожалуйста как разбить массив допустим из 40 элементов на 4 массива по 10 элементов.
Свои попытки увели меня в такие дебри, что вспоминать стыдно.
Сразу скажу, что получив Ваш ответ удивлюсь как это просто, но сам додуматься не могу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2016, 15:50     Разделить массив на 4 части
Посмотрите здесь:
Разделить массив на две части C++
C++ Разделить массив на две части
C++ Разделить строку по пробелам и записать полученные части в массив
C++ C++ разделить исходник на части
разделить число на 2 части C++
Разделить строку на части C++
Разделить строку на две части C++
Разделить строку на две части C++
Разделить строки на мелкие части C++
Разделить строку на части по указанному символу C++
Как разделить программу на две части? C++
Нужно разделить эту строку на 3 части и вывести на экран. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Любитель чаепитий
2589 / 1128 / 281
Регистрация: 24.08.2014
Сообщений: 4,131
Записей в блоге: 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
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
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 части
Ответ Создать тему
Опции темы

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