请查看以下代码
#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]
但我所尝试的并不是很有效。请帮忙。
答案 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];
}