如何在数组中的每个元素之后插入新元素?
例如,我有一个数组3,4,5,6,7
,我想在每个元素之后添加0
。所以在修改新数组后应该是3,0,4,0,5,0,6,0,7,0
过去几个小时我一直试图这样做而没有任何成功。
谢谢大家
答案 0 :(得分:1)
我没有对此进行测试,但它应该可行。 如果您正在进行此操作,那么您需要像这样向后工作,否则在您阅读之前就会覆盖一些数组。
//Make sure it has space for the zeros.
//If we have 5 numbers here, we need space for 10
int arr[10] = {3, 4, 5, 6, 7};
//Start at the last number (index 4) and work your way down.
//If you start at zero and increment up, you will overwrite data at the beginning of the array.
for (int i = 4; i >= 0; i--)
{
arr[i * 2] = arr[i]; //Move the number
arr[i * 2 + 1] = 0; //Add a zero after it
}
答案 1 :(得分:0)
正如你在C下标记它一样。我会在这里避免使用矢量。 假设您已经在堆上堆栈上已经分配了10个整数的数组。由于您有5个元素,因此需要5个零。因此,结果数组中的总元素将为10。
void function(int arr[], int size)
{
int loc = size/2;
while(size>=0)
{
if(size&1)
arr[size--] = arr[loc--];
else
arr[size--] = 0;
}
}