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

Как из двух массивов создать третий? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.63
oper24
 Аватар для oper24
1 / 1 / 0
Регистрация: 12.07.2010
Сообщений: 55
15.10.2010, 14:41     Как из двух массивов создать третий? #1
Допустим дан массив А[n] и B[m], как создать массив С[n+m]???
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.10.2010, 14:51     Как из двух массивов создать третий? #2
В смысле сделать массив С, длина которого равна длина A + длина B? Или же нужно сделать сложение массивов?
oper24
 Аватар для oper24
1 / 1 / 0
Регистрация: 12.07.2010
Сообщений: 55
15.10.2010, 14:55  [ТС]     Как из двух массивов создать третий? #3
Цитата Сообщение от dihlofos Посмотреть сообщение
В смысле сделать массив С, длина которого равна длина A + длина B? Или же нужно сделать сложение массивов?
массив С должен состоять из элементов мас А и В.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.10.2010, 15:35     Как из двух массивов создать третий? #4
Попробуйте как-нибудь так:
C++
1
2
3
4
5
for(i=0; i<aSize; i++)
    c[i]=a[i];
 
for(i=0; i<bSize; i++)
    c[i+aSize]=b[i];
, где aSize и bSize - размеры a и b соответственно.

Добавлено через 25 минут
Или ещё лучше, ввести дополнительную переменную для индексации массива c. Так можно объединять и большее число массивов.
C++
1
2
3
4
5
int j=0;
for(i=0; i<aSize; i++)
    c[j++] = a[i];
for(i=0; i<bSize; i++)
    c[j++] = b[i];
oper24
 Аватар для oper24
1 / 1 / 0
Регистрация: 12.07.2010
Сообщений: 55
15.10.2010, 16:00  [ТС]     Как из двух массивов создать третий? #5
А если так??? Только вот не пойму как вывести на экран mas_sum???


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
const int s1=3, s2=5,s3=s1+s2;
 int mas1[s1],mas2[s2],mas_sum[s1+s2];
 int p=0;
 
 for(int i=0;i<s1;i++){
  mas1[i]=rand()%100;
  cout<<mas1[i]<<" ";
 }
 
 cout<<"\n\n";
 
 for(int i=0;i<s2;i++){
  mas2[i]=rand()%100;
  cout<<mas2[i]<<" ";
 }
 cout<<"\n\n";
 
 for(int i=0;i<s1;i++)
  mas_sum[i]=mas1[i];
 
 
 for(int i=s1;i<s3;i++)
  mas_sum[i]=mas2[p];
  p++;
 
  
 
}
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.10.2010, 16:12     Как из двух массивов создать третий? #6
А в чём, собственно проблема?
C++
1
2
3
4
for(int i=0;i<s3;i++)
   {
    cout<<mas_sum[i]<<' ';
   }
Кстати, последний цикл заключите в фигурные скобочки:
C++
1
2
3
4
5
for(int i=s1;i<s3;i++)
{
  mas_sum[i]=mas2[p];
  p++;
}
oper24
 Аватар для oper24
1 / 1 / 0
Регистрация: 12.07.2010
Сообщений: 55
15.10.2010, 16:29  [ТС]     Как из двух массивов создать третий? #7
так сейчас попробую...

Добавлено через 12 минут
Все получилось... И еще вопрос за что сдесь отвечает переменная
C++
1
int p=0
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.10.2010, 16:30     Как из двух массивов создать третий? #8
oper24,
C++
1
2
mas_sum[i]=mas2[p];
  p++;
Счетчик. С нуля и до тех пор пока i<s3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2010, 16:36     Как из двух массивов создать третий?
Еще ссылки по теме:

На основе двух массивов сформировать третий C++
C++ Из двух массивов, упорядоченных по возрастанию, получить третий
Из двух массивов создать третий, включающий уникальные элементы первого, с использованием указателей C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.10.2010, 16:36     Как из двух массивов создать третий? #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
 
#define RAND(arr, size, limit) ({ int i; for ( i = 0; i < size; ++i ) arr[i] = rand() % limit; })
#define PRINT(arr, size) ({ int i; for ( i = 0; i < size; ++i ) printf("%d%c", arr[i], i < size - 1 ? ' ' : '\n' ); })
 
#define SIZE_A 7
#define SIZE_B 13
 
int main(void){
    int arr_a[SIZE_A], arr_b[SIZE_B], arr_c[SIZE_A + SIZE_B];
 
    srand(time(NULL));
 
    RAND(arr_a, SIZE_A, 10);
    RAND(arr_b, SIZE_B, 10);
    memcpy(arr_c, arr_a, sizeof(int) * SIZE_A);
    memcpy(arr_c + SIZE_A, arr_b, sizeof(int) * SIZE_B);
 
    printf("A: ");
    PRINT(arr_a, SIZE_A);
    printf("B: ");
    PRINT(arr_b, SIZE_B);
    printf("C: ");
    PRINT(arr_c, (SIZE_A + SIZE_B));
 
    exit(0);
}
Yandex
Объявления
15.10.2010, 16:36     Как из двух массивов создать третий?
Ответ Создать тему
Опции темы

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