2

2 つの配列にある要素を乗算するのに苦労しています。

    int[] firstArray = { 1,2,3,4 };
    int[] secondArray = { 10,20,30,40 };

「firstArray」の最初の要素に「secondArray」の各要素を掛ける必要があります。次に、「firstArray」の 2 番目の要素を「secondArray」の各要素で取得し、最初の配列のすべての要素に 2 番目の配列の各要素を掛けるまで、これを繰り返します。

これまでのところ、3番目の配列を作成して最初の要素を取得する方法を理解しました

    int[] thirdArray = [4]

    for (int counter = 0; counter < thirdArray.Length; counter ++)
    thirdArray[counter] = firstArray[counter] * secondArray[counter];
    console.WriteLine(thirdArray[counter]);

これは、最初の配列の要素を取り、2 番目の要素に直接乗算します。16 個の int 結果が必要ですが、 thirdArray を [16] に変更すると、範囲外の例外が発生します。あなたが助けることができれば、それは大歓迎です。

4

5 に答える 5

3

私はこれがあなたが探しているものを達成すると信じています:

int[] thirdArray = new int[16];

for (int i = 0; i < 4; i++)
    for (int j = 0; j < 4; j++)
        thirdArray[i * 4 + j] = firstArray[i] * secondArray[j];
于 2013-03-27T00:01:13.823 に答える
2

別のアプローチとして、これにLINQを使用できます。

var query = from x in firstArray
            from y in secondArray
            select x * y;

int[] thirdArray = query.ToArray();
于 2013-03-27T00:00:27.970 に答える
1

これで問題が解決するはずです:

int[] firstArray = { 1,2,3,4 };
  int[] secondArray = { 10,20,30,40 };
    int[] thirdArray = new int[firstArray.Length*secondArray.Length];
    for (int i = 0; i < firstArray.Length; i++)
    for (int j = 0; j < secondArray.Length; j++)
    {
        thirdArray[i*firstArray.Length + j] = firstArray[i] * secondArray[j];
        Console.WriteLine(thirdArray[i*firstArray.Length + j]);
    }
于 2013-03-27T00:02:20.763 に答える
0

LINQ を使用して、1 行で実行します。

var allMultiples = firstArray.SelectMany(a => secondArray.Select(b => a * b));
于 2013-03-28T03:34:42.543 に答える
0

各反復のスコープには 1 つの操作しかないため、スコープを示す中括弧をなくすこともできます。

int[] firstArray = { 1, 2, 3, 4 };
int[] secondArray = { 10, 20, 30, 40 };
for (int i = 0; i < firstArray.Length; i++ )
    foreach (int second in secondArray)
        firstArray[i] *= second;
于 2013-03-27T00:03:34.120 に答える