#include <stdio.h>
int main() {
int n = 0;
int m = 0;
int i = 0;
int j = 0;
int arr1[1000] = { 0 };
int arr2[1000] = { 0 };
scanf("%d %d", &n, &m);
for (i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for (j = 0; j < m; j++)
{
scanf("%d", &arr2[j]);//第二个错误
}
//比较大小
i = 0;//第一个错误
j = 0;
while (i < n && j < m)
{
if (arr1[i] < arr2[j])
{
printf("%d ", arr1[i]);
i++;
}
else
{
printf("%d ", arr2[j]);
j++;
}
}
while (i < n)
{
printf("%d ", arr1[i]);
i++;
}
while (j < m)
{
printf("%d ", arr2[j]);
j++;
}
return 0;
}
上面是一个两个正序数组按顺序汇总输出的程序,程序编写后发现不报错但没有输出。
第一个错误
在两个数组比较大小前,没有把 i 和 j 重新置为0;导致while循环一进去就跳出来,所以没有输出;
第2个错误
变量 i 和 j 弄混了,第二个数组只能输入比 i 大的那部分数字。