【发布时间】:2019-06-29 15:41:28
【问题描述】:
我正在尝试合并两个数组,但似乎有问题。我尝试使用一个简单的循环,但它不起作用。我的第一个问题是我不知道如何停止数组的 for 循环,第二个问题是每次它为合并数组分配一些垃圾值。如果有人能给我一个方向……
int arr1[] = {1,2,3,4,5,0}, arr2[] = {6,7,8,9,0};
int x = 0, merge_arr[x], i = 0, x1 = 0;
for( ; arr1[i] != 0; i++)
{
merge_arr[i] = arr1[i];
printf("%di ", merge_arr[i]);
}
for( ; arr2[x1] != 0; i++)
{
merge_arr[i] = arr2[x1];
printf(" %di ", merge_arr[i]);
x1++;
}
for(int x2 = 0; merge_arr[x2] != '\0'; x2++)
{
printf("%d\n", merge_arr[x2]);
}
【问题讨论】:
-
int x = 0 , merge_arr[x]- 你刚刚声明了一个大小为 0 的数组。这应该如何工作? -
您的“合并”似乎是“将
arr1然后arr2连接到结果数组中”,并增加了“在源数组中的第一个零元素处停止复制”的皱纹。很多时候,合并意味着“交错源数组的元素(按排序顺序),以便结果数组也按排序顺序”。这需要非常不同的代码。