0

请看下面的代码

#include <iostream>

using namespace std;

int main()
{
    int array1[10] = {1,1,1,1,1,1,1,1,1,1};
    int array2[10] = {2,2,2,2,2,2,2,2,2,2};

    int array3[20];

    for(int i=0;i<=9;i++)
    {
        array3[i] = array1[i];
        array3[i+1] = array2[i];
    }

    for(int i=0;i<20;i++)
    {
        cout << array3[i] << endl;
    }
}

这里我要做的是,将array1和array2中的所有值分配给array3。这些应该按顺序分配,这意味着,

array3[0] = array1[0]

array3[1] = array2[0]

array3[2] = array1[1]

array3[3] = array2[1]

但我尝试过的不是正常工作。请帮忙。

4

4 回答 4

5

这只会分配到元素 10。我假设您需要类似以下内容:

for(int i=0;i<=9;i++)
{
    array3[i*2] = array1[i];
    array3[i*2+1] = array2[i];
}
于 2012-11-16T06:53:04.003 回答
4

您需要array3[i*2]=并且array3[i*2+1]=在您的逻辑中,因为您一次添加 2 个值

但除此之外还有algorithm

#include <algorithm>

int array1[10] = {1,1,1,1,1,1,1,1,1,1};
int array2[10] = {2,2,2,2,2,2,2,2,2,2};
std::copy(array2, array2 + sizeof10 array1);
于 2012-11-16T06:52:53.873 回答
1

你的分配循环应该是,

int k = 0;
for(int i=0;i<=9;i++)
    {
        array3[k++] = array1[i];
        array3[k++] = array2[i];
    }

正如您在声明期间确保数组的大小正确一样。可以使用自变量 k 来索引数组3。

于 2012-11-16T06:56:32.423 回答
0

试试这个..

for(int i=0;i<=9;i++)
{
array3[i*2] = array1[i];
array3[i*2+1] = array2[i];
}
于 2012-11-16T06:56:23.517 回答