2

我在乘法时遇到了麻烦2 arrays

首先,我想让用户输入7int 并将其存储在第一个数组中。

第二个数组将是const[] == {2765432};

问题是如何将两个数组中的每个元素相乘

(即)如果用户input = 6192354,这将首先存储在一个数组中,然后我希望它与第二个数组相乘。所以会是

6 * 2.. 1 * 7.. 9 * 6..ETC..

4

4 回答 4

3

首先,{2765432}不是一个七元素数组。它一个包含单个整数的单元素数组,2765432但您似乎在使用七元素数组。

要获得该一位数字值的数组,您需要以下内容:

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

然后,假设您已将用户值读入另一个七元素数组,它很简单:

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

如果您发现自己需要输入一个数字并将其拆分为一个七位数的数组,您可以从以下开始:

#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;
}

它使用模数和除法将数字一次提取到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 回答