【发布时间】:2020-09-23 17:39:33
【问题描述】:
让我们说 a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
那我想要 x=[1,2,3,4,9,10,11,12] y=[5,6,7,8,13,14,15,16]
我可以这样做
#include <stdio.h>
int main()
{
int array[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int *firstHalf = malloc(8 * sizeof(int));
int *secondHalf = malloc(8 * sizeof(int));
memcpy(firstHalf, array, 4 * sizeof(int));
memcpy(secondHalf, array + 4,4 * sizeof(int));
memcpy(firstHalf+4, array+8, 4 * sizeof(int));
memcpy(secondHalf+4, array + 12,4 * sizeof(int));
for (int i=0;i<8;i++)
{
printf("First %d\n",firstHalf[i]);
} for (int i=0;i<8;i++)
{
printf("Second %d\n",secondHalf[i]);
}
}
我这样做了,但需要一个解决方案将其放入 for 循环中以使其可扩展
请给我建议如何完成
【问题讨论】:
-
我不明白为什么你只需要 4 个元素就开始复制 8 个元素。将 4 个元素复制到第一个数组,将接下来的 4 个元素复制到另一个数组,然后重复,注意结束条件,最后不完整的集合。