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

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

Войти
Регистрация
Восстановить пароль
 
itel
0 / 0 / 0
Регистрация: 07.07.2014
Сообщений: 27
#1

Образовать 2 массива из одного - C++

08.07.2014, 00:33. Просмотров 294. Ответов 9
Метки нет (Все метки)

Дан массив (А) с К элементов (К-четное число). Образовать 2 массива (В и С), переписывая в массив В первую половину массива А, в массив С - вторую половину массива А.
Проблемы с массивами
Спасибо за помощь!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 00:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Образовать 2 массива из одного (C++):

Дан массив А. Образовать реверс массива А в массиве В. Вывести оба массива и индексы элементов на экран в виде трех столбцов. - C++
Дан массив А. Образовать реверс массива А в массиве В. Вывести оба массива и индексы элементов на экран в виде трех столбцов.

Образовать из матрицы 2 массива с положительными элементами и отрицательными элементами по возрастанию - C++
Дана матрица размера N. Образовать из него 2 массива с положительными элементами и отрицательными элементами по возрастанию. Помогите...

Удаление из одного массива элементов второго массива и запись результата в третий - C++
Есть массив masA (длина lenA), есть массив masB (длина lenB). Необходимо из массива masA удалить элементы, входящие в массив masB и...

Из массива A удалить те цепочки нечетных элементов, в которых нет ни одного элемента из массива B - C++
Пожалуйста помогите! Из массива A удалить те цепочки нечетных элементов, в которых нет ни одного элемента из массива B. Пример: ...

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

Элементы одного массива размером 10 элементов перенести в 2 массива - C++
Доброго времени суток,подскажите пожалуйста как решить задачу. Написать программу, копирующую последовательно элементы одного массива...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
08.07.2014, 00:59 #2
что-то типо этого:
C++
1
2
3
4
5
6
7
8
const int k = 100;  // Количество элементов массива
int a[k], b[k/2], c[k/2], i = 0;
for (; i < k/2; i++){
    b[i] = a[i];
}
for (int s = 0; s < k/2 ; s++){
    c[s] = a[i];
}
1
Roodey
4 / 4 / 1
Регистрация: 23.05.2013
Сообщений: 36
08.07.2014, 05:11 #3
srin, не совсем, насколько я понимаю у вас получатся два одинаковых массива.
itel, возьмите то, что сделал srin, но циклы такие:
C++
1
2
3
4
for(int i = 0; i < k / 2; i++)
  b[i] = a[i]
for(int i = k / 2; i < k; i++)
  c[i] = a[i]
1
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
08.07.2014, 08:56 #4
Roodey, а ничего, что у вас во втором цикле for начальный элемент массива "c" будет "k/2"?

itel, у меня ошибочка вышла. во втором цикле забыл увеличить "i". надо : "(int s = 0; s < k/2 ; s++, i++)".
1
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
08.07.2014, 09:27 #5
srin, Roodey,
C++
1
2
3
4
5
6
7
8
9
10
11
        const int N = 10;
        const int N_2 = N >> 1;
        const int A[N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int B[N_2];
        int C[N_2];
        std::copy(A, A + N_2, B);
        std::copy(A + N_2, A + N, C);
        std::copy(B, B + N_2, std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
        std::copy(C, C + N_2, std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
1
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
08.07.2014, 10:26 #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
29
30
31
32
33
34
35
#include <time.h>
 
int main()
{
#define SIZE 10
#define HALF_SIZE SIZE/2
 
int i;
 
int *A = (int*) malloc( SIZE      * sizeof(int) );
int *B = (int*) malloc( HALF_SIZE * sizeof(int) );
int *C = (int*) malloc( HALF_SIZE * sizeof(int) );
 
srand( time( NULL ) );
 
for( i=0; i<SIZE; i++ )
  {
  A[i] = rand()%100;
  printf( "% *d ", 4, A[i] );
  }
 
memcpy( B, A, HALF_SIZE * sizeof(int) );
memcpy( C, A+HALF_SIZE, HALF_SIZE * sizeof(int) );
 
printf( "\n" );
for( i=0; i<HALF_SIZE; i++ )
  printf( "% *d ", 4, B[i] );
 
printf( "\n% *c", HALF_SIZE*HALF_SIZE, ' ' ); // Чисто ради хохмы
for( i=0; i<HALF_SIZE; i++ )
  printf( "% *d ", 4, C[i] );
 
getchar();
return 0;
}
1
Kukurudza
08.07.2014, 10:41
  #7

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Просто так:
Код C
#include <time.h>
int main()
{
#define SIZE 10
#define HALF_SIZE SIZE/2
int i;
int *A = (int*) malloc( SIZE * sizeof(int) );
int *B = (int*) malloc( HALF_SIZE * sizeof(int) );
int *C = (int*) malloc( HALF_SIZE * sizeof(int) );
srand( time( NULL ) );
for( i=0; i<SIZE; i++ )
{
A[i] = rand()%100;
printf( "% *d ", 4, A[i] );
}
memcpy( B, A, HALF_SIZE * sizeof(int) );
memcpy( C, A+HALF_SIZE, HALF_SIZE * sizeof(int) );
printf( "\n" );
for( i=0; i<HALF_SIZE; i++ )
printf( "% *d ", 4, B[i] );
printf( "\n% *c", HALF_SIZE*HALF_SIZE, ' ' ); // Чисто ради хохмы
for( i=0; i<HALF_SIZE; i++ )
printf( "% *d ", 4, C[i] );
getchar();
return 0;
}
ужснах

0
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
08.07.2014, 12:56 #8
Kukurudza, я бы послушал, как ТС будет объяснять преподавателю для чего нужны и как работают copy и ostream_iterator в вашем примере. ибо (не в обиду ТС), если он не знает как работать с массивом, вряд ли он знает что это такое, как это работает и для чего это необходимо.

SatanaXIII, это сильно! аплодирую стоя!
0
Roodey
4 / 4 / 1
Регистрация: 23.05.2013
Сообщений: 36
09.07.2014, 11:30 #9
srin, ну, так как раз, в массиве из, допустим 6 элементов, в первом цикле пройдутся {[0] [1] [2]} и закончатся на [3] не включая его, а второй цикл начнет пробег с [3] элемента и включит в себя {[3] [4] [5]} элементы
0
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
09.07.2014, 13:15 #10
Roodey, это я понимаю, но в условии то про это ничего не сказано.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2014, 13:15
Привет! Вот еще темы с ответами:

Разделить элементы одного массива на элементы другого массива, записать результат в третий массив - C++
Как разделить элементы одного массива на элементы другого массива? есть массив a и есть массив b. размеры a=b. ввожу новый массив,...

Копирование одного массива в другой - C++
Как массив из одного вытащить в другой!?

Заполнение одного массива другим - C++
Всем привет. Имеются два массива Массив А={1,2,3,4,5,6,7..24} Массив В Как заполнить массив В массивом А, т.е...

Из одного массива сформировать другой - C++
Дан целочисленный массив А. Сформировать массив В, поместив в него значения индексов тех элементов массива А, которые являются простыми...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.07.2014, 13:15
Ответ Создать тему
Опции темы

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