如何在C ++中乘以2个数组?

时间:2013-06-06 05:20:44

标签: visual-c++

我在乘以2 arrays时遇到了麻烦。

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

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

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

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

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

4 个答案:

答案 0 :(得分:2)

首先,{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数组中,之后您处于与将数字直接输入数组相同的情况。

答案 1 :(得分:1)

尝试使用std::transform。以下列方式:

#include <algorithm>
#include <functional>

...

std::transform(user, user + 7*sizeof(user[0]), second, result, std::multiplies<int>());

答案 2 :(得分:0)

for(int i =0;i< A.length;i++)
{
    A[i] = A[i] * B[i];
}

=

答案 3 :(得分:0)

假设两个数组的大小相同,那么下面的代码应该可行。否则,将需要不同的逻辑。

for(int i = 0; i < 7; i++)
{
  int temp = answer[i] * const[i];
}
相关问题