Пример программы:
// Функция объединяет два массива отсортированных по убыванию в один массив
// a, b - объединяемые массивы, c - результат, n - количество элементов в массивах а и b
void concatmas(int *a, int*b, int*c, int n)
{
int i=0, j=0, k=0;
while(i<n && j<n)
if(a[i]>b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
while(i<n)
c[k++]=a[i++];
while(j<n)
c[k++]=b[j++];
}
main()
{
int n = 4, i, ntest=4, it, f;
int c[4][8];
int a[4][4] = { {5, 3, 2, 1},
{5, 3, 2, 1},
{8, 7, 6, 4},
{4, 3, 2, 1}, };
int b[4][4] = { {7, 6, 4, 1},
{8, 7, 6, 4},
{5, 3, 2, 1},
{8, 7, 6, 5}, };
int d[4][8] = { {7, 6, 5, 4, 3, 2, 1, 1},
{8, 7, 6, 5, 4, 3, 2, 1},
{8, 7, 6, 5, 4, 3, 2, 1},
{8, 7, 6, 5, 4, 3, 2, 1} };
for(it=0; it<ntest; it++)
{
printf("\n\tTest %i\n", it);
printf("a=\n");
for(i=0; i<n; i++) printf("%i ", a[it][i]);
printf("\nb=\n");
for(i=0; i<n; i++) printf("%i ", b[it][i]);
concatmas(a[it], b[it], c[it], n);
printf("\nc=\n");
for(i=0; i<2*n; i++) printf("%i ", c[it][i]);
f=0;
for(i=0; i<2*n; i++) if(c[it][i]!=d[it][i]) f=1;
if(f==0) printf("\ntest passed\n");
else printf("\ntest failed!\n");
}
}