运行结果和答案一样但还是显示错误

img

img


#include <stdio.h>

void Merge(int* nums1, int m, int* nums2, int n) {
int i = m - 1;
int j = n - 1;
int dest = m + n - 1;
while (i >= 0 && j >= 0)
{
if (nums1[i] > nums2[j])
{
nums1[dest--] = nums1[i--];
}
else
{
nums1[dest--] = nums2[j--];
}
}

while (j >= 0)
{
    nums1[dest--] = nums2[j--];
}

}

#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;

int arr1[100] = { 0 };
int arr2[100] = { 0 };

scanf("%d", &num1);
//第一个数组
for (int i = 0; i < num1; i++)
{
    scanf("%d", &arr1[i]);
}

scanf("%d", &num2);
//第二个数组
for (int i = 0; i < num2; i++)
{
    scanf("%d", &arr2[i]);
}

Merge(arr1, num1, arr2, num2);
for (int i = 0; i < num1 + num2; i++)
{
    printf("%d ", arr1[i]);
}
return 0;

}

输出后要换行的,这种题一般默认都要换行,你在最后循环结束后,加上换行语句,试试