C
МАССИВЫ
Практическое занятие
Слить два упорядоченных по возрастанию массива целых чисел введённых
с клавиатуры в один упорядоченный по возрастанию и вывести новый массив на печать.
#include
#include
#define SZ 5 //Размер исходных массивов
void main() {
int a[SZ], b[SZ]; // исходные массивы
int c[SZ*2]; // массив-результат
int k,i,m; // индексы массивов a, b и c
printf ("Слияние двух упорядоченных массивов в один,\n");
printf ("ввод элементов через пробел, завершение: Enter\n");
printf ("\nВведите первый массив %i -> ", SZ);
for (k=0; kprintf ("Введите второй массив %i -> ", SZ);
for (i=0; i k=i=m=0;
do { if (a[k] < b[i]) c[m++] = a[k++];
else if (a[k] > b[i]) c[m++] = b[i++];
else { c[m++] = a[k++]; c[m++] = b[i++]; } }
while ((k < SZ) && (i < SZ));
while (k < SZ) /*есть элем. массива А не переписанные в С*/
c[m++] = a[k++];
while (i < SZ) /* есть элементы B не переписанные в С */
c[m++] = b[i++];
printf("Массив-результат: \n");
for (i=0; i<2*SZ; i++) printf ("%i ", c[i]);
printf("\nДля завершения работы нажмите Enter\n");
getch(); }
И+ПРГ
АЛГОхитрости