2

乗算に問題があります2 arrays

まず、ユーザーに7int を入力して最初の配列に格納してもらいたいです。

2番目の配列はconst[] == {2765432};

問題は、両方の配列の各要素をどのように乗算するかです

(つまり)ユーザーの場合input = 6192354、これは最初に配列に格納され、次に2番目の配列で乗算します。そうなる

6 * 2.. 1 * 7.. 9 * 6..等..

4

4 に答える 4

3

まず{2765432}、7 要素の配列ではありません。単一の整数を保持する1要素の配列です2765432、7要素の多様性を求めているようです。

1 桁の値の配列を取得するには、次のようなものが必要です。

int second[] = {2,7,6,5,4,3,2};

次に、ユーザー値を別の7 要素配列に読み取ったと仮定すると、それは次のように単純です。

for (int i = 0; i < 7; i++)
    result[i] = user[i] * second[i];

たとえば、このプログラム:

#include <iostream>

int main() {
    int i, user[7], second[] = {2,7,6,5,4,3,2}, result[7];

    for (i = 0; i < 7; i++) {
        std::cout << "Enter value #" << (i + 1) << ": ";
        std::cin >> user[i];
    }

    for (i = 0; i < 7; i++) {
        result[i] = user[i] * second[i];
    }

    for (i = 0; i < 7; i++) {
        std::cout << user[i] << " * " << second[i] << " = " << result[i] << '\n';
    }

    return 0;
}

実行すると、次のトランスクリプトが生成されます。

Enter value #1: 1
Enter value #2: 3
Enter value #3: 2
Enter value #4: 8
Enter value #5: 4
Enter value #6: 7
Enter value #7: 4
1 * 2 = 2
3 * 7 = 21
2 * 6 = 12
8 * 5 = 40
4 * 4 = 16
7 * 3 = 21
4 * 2 = 8

1 つの数値を入力し、それを 7 桁の配列に分割する必要がある場合は、次のように開始できます。

#include <iostream>

int main() {
    int i, val, user[7], second[] = {2,7,6,5,4,3,2}, result[7];

    std::cout << "Enter a seven-digit value: ";
    std::cin >> val;
    for (i = 6; i >= 0; i--) {
        user[i] = val % 10;
        val /= 10;
    }

    for (i = 0; i < 7; i++) {
        result[i] = user[i] * second[i];
    }

    for (i = 0; i < 7; i++) {
        std::cout << user[i] << " * " << second[i] << " = " << result[i] << '\n';
    }

    return 0;
}

モジュロと除算を使用して、数字を一度に 1 つずつ配列に抽出しuserます。その後、数字を配列に直接入力した場合と同じ状況になります。

于 2013-06-06T05:23:26.870 に答える
1

使ってみてくださいstd::transform。次の方法で:

#include <algorithm>
#include <functional>

...

std::transform(user, user + 7*sizeof(user[0]), second, result, std::multiplies<int>());
于 2013-06-06T05:29:48.117 に答える
0
for(int i =0;i< A.length;i++)
{
    A[i] = A[i] * B[i];
}

=

于 2013-06-06T05:25:06.720 に答える
0

両方の配列が同じサイズであると仮定すると、以下のコードが機能するはずです。それ以外の場合は、別のロジックが必要になります。

for(int i = 0; i < 7; i++)
{
  int temp = answer[i] * const[i];
}
于 2013-06-06T05:27:24.607 に答える