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

Разделение одномерного массива - C++

Восстановить пароль Регистрация
 
XlorD59
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 50
01.06.2013, 22:28     Разделение одномерного массива #1
Как разделить одномерный массив из случайного количества элементов на пары чисел?
На вход подаётся количество элементов.

Т.е. предположим, что есть массив из 10 элементов - следовательно на выходе должно получится 5 пар элементов.
Создавать для каждой пары отдельный массив? Создание массивов в цикле вообще реализуемо? И не займет ли это очень много памяти?
Или использовать какую-то рекурсивную функцию, вызывающую саму себя?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2013, 22:28     Разделение одномерного массива
Посмотрите здесь:

разделение массива C++
C++ Сортировка одномерного массива
Составить программу сортировки одномерного числового массива от начала массива к элементу с заданным номером по убыванию (методом выбора) C++
C++ Заменить все элементы массива, попадающие в интервал, нулем. Выполнить двумя способами: с помощью одномерного и двумерного массива.
C++ Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
l2ded
 Аватар для l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
02.06.2013, 01:36     Разделение одномерного массива #2
C++
1
2
3
for(int i=0;i<count;i++)
if (i%2) std::cout<<a[i]<<std::endl;
else std::cout<<a[i];
НЕ?

Цитата Сообщение от XlorD59 Посмотреть сообщение
Создавать для каждой пары отдельный массив?
Чем плох один двумерный массив? (M x 2), где М - кол-во пар
XlorD59
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 50
02.06.2013, 13:30  [ТС]     Разделение одномерного массива #3
l2ded, а можно с комментариями?
С первой то строчкой всё понятно, а остальное? Я не силён в с++ просто.

Чем плох один двумерный массив? (M x 2), где М - кол-во пар
Дело в том, что в изначальном массиве кол-во элементов может быть нечётным. Т.е. одна пара в итоге будет неполная. Это как в двумерный массив записать тогда?
l2ded
 Аватар для l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
02.06.2013, 20:04     Разделение одномерного массива #4
Цитата Сообщение от XlorD59 Посмотреть сообщение
Дело в том, что в изначальном массиве кол-во элементов может быть нечётным. Т.е. одна пара в итоге будет неполная. Это как в двумерный массив записать тогда?
И что?
C++
1
M=(count % 2)? (count/2+1) : (count/2);
и потом выделяешь память


Один из вариантов:
1) C выводом
C
1
2
3
4
5
6
7
8
9
10
11
    for(i=0,k=0;i<M-1;i++,k+=2){
            MASSIV[i][0]=A[k];MASSIV[i][1]=A[k+1];
            cout<<MASSIV[i][0];cout<<MASSIV[i][1];cout<<endl;
        }
 
    if (count % 2) {
         MASSIV[i][0]=A[k]; cout<<MASSIV[i][0];cout<<endl; }   
    else {
    MASSIV[i][0]=A[k]; MASSIV[i][1]=A[k+1];
    cout<<MASSIV[i][0];cout<<MASSIV[i][1];cout<<endl;
    }
2) Без вывода
C
1
2
3
for(i=0,k=0;i<M-1;i++,k+=2){MASSIV[i][0]=A[k];MASSIV[i][1]=A[k+1];}
if (count % 2) MASSIV[i][0]=A[k];   
else {MASSIV[i][0]=A[k]; MASSIV[i][1]=A[k+1];}
где
A - массив из случайных чисел.
MASSIV - массив из пар чисел.
k - индекс массива A;
i - номер пары.
count - кол-во элементов массива A; A[count]
M - кол-во пар массива MASSIV; MASSIV[M][2]

просто придётся всегда использовать if (count % 2) и рассматривать 2 случая окончания массива.
Yandex
Объявления
02.06.2013, 20:04     Разделение одномерного массива
Ответ Создать тему
Опции темы

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