【输入形式】从键盘输入数组a的值10个元素,从小到大输入,从键盘输入数组b的10个元素,从大到小输入。
【输出形式】输出数组c的元素,从大到小排列。
【样例输入】
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
【样例输出】10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1
【输入形式】从键盘输入数组a的值10个元素,从小到大输入,从键盘输入数组b的10个元素,从大到小输入。
【输出形式】输出数组c的元素,从大到小排列。
【样例输入】
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
【样例输出】10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1
a从后往前遍历,b从前往后遍历,比较a[i]和b[j]的大小,谁大就先把谁放入数组。
运行结果:
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a[10], b[10], c[20];
int i, j;
int k = 0;
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
for (i = 0; i < 10; i++)
scanf("%d", &b[i]);
i = 9; //a从后往前遍历
j = 0; //b从前往后遍历
while (i >= 0 && j < 10)
{
if (a[i] > b[j]) //比较,先插入大的数
{
c[k++] = a[i];
i--; //a从后往前遍历,所以是i--
}
else
{
c[k++] = b[j];
j++;
}
}
//插入剩余数据
while (i >= 0)
{
c[k++] = a[i];
i--;
}
while (j < 10)
{
c[k++] = b[j];
j++;
}
//输出
for (i = 0; i < 20; i++)
{
if (i < 19)
printf("%d ", c[i]);
else
printf("%d", c[i]);
}
return 0;
}