将2个数组的值分配给另一个数组

时间:2012-11-16 06:50:39

标签: c++ arrays

请查看以下代码

#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 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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);

答案 2 :(得分:1)

你的作业循环应该是,

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

您已确保在声明期间阵列的大小正确。可以使用独立变量k来索引数组3。

答案 3 :(得分:0)

试试这个..

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