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

一度に2つの値を追加するため、ロジックにarray3[i*2]=andが必要ですarray3[i*2+1]=

しかし、それに加え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];
    }

配列のサイズが宣言中に正しいことを確認したように。array3 へのインデックス付けに独立変数 k to を使用しても問題ありません。

于 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 に答える