kkate4ka
@kkate4ka
глупенькая девочка

Как записать 2 упорядоченных массива в один общий?

Даны на вход 2 массива
mass1[n]
mass2[m]
в процессе мы их заполняем числами, но это не так важно.
как записать результирующий массив, состоящий их этих двух?
например:
mass1[4] = {2, 4, 5, 6}
mass2[6] = {2, 4, 5, 6}
result[10] = {2, 4, 5, 6, 2, 4, 5, 6}
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Wundarshular
Вам известно, что длина результирующего массива равна n+m. Исходя из этого, самым примитивным образом заполнить результирующий массив можно так:

#include <stdio.h>

int main(void)
{
	short int n,m,i,k;
	short int mass1[n],mass2[m],massR[n+m];

	n=4;m=5;
	k=0; // для заполнения результирующего массива вторым.
	for(i=0;i<n;i++)
		mass1[i]=i;
	for(i=0;i<m;i++)
		mass2[i]=(i+5)*2;
	printf("mass1\n", mass1[i]);
	for(i=0;i<n;i++)
		printf("%d ", mass1[i]);
	printf("\nmass2\n", mass1[i]);
	for(i=0;i<m;i++)
		printf("%d ", mass2[i]);
	printf("\n");

	for(i=0;i<n;i++) // заполнение результирующего массива первым
		massR[i]=mass1[i];
	for(i=n;i<m+n;i++) // и вторым
	{
		massR[i]=mass2[k];
		k++;
	}
	printf("\nResult: ");
	for(i=0;i<n+m;i++)
		printf("%d ", massR[i]);

	getchar();
	return 0;
}


Вывод выглядит так:
mass1
0 1 2 3
mass2
10 12 14 16 18

Result: 0 1 2 3 10 12 14 16 18
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы