我在乘法时遇到了麻烦2 arrays
。
首先,我想让用户输入7
int 并将其存储在第一个数组中。
第二个数组将是const[] == {2765432};
问题是如何将两个数组中的每个元素相乘
(即)如果用户input = 6192354
,这将首先存储在一个数组中,然后我希望它与第二个数组相乘。所以会是
6 * 2.. 1 * 7.. 9 * 6..
ETC..
我在乘法时遇到了麻烦2 arrays
。
首先,我想让用户输入7
int 并将其存储在第一个数组中。
第二个数组将是const[] == {2765432};
问题是如何将两个数组中的每个元素相乘
(即)如果用户input = 6192354
,这将首先存储在一个数组中,然后我希望它与第二个数组相乘。所以会是
6 * 2.. 1 * 7.. 9 * 6..
ETC..
首先,{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
数组中,之后您的情况与将数字直接输入到数组中的情况相同。
尝试使用std::transform
. 采用以下方式:
#include <algorithm>
#include <functional>
...
std::transform(user, user + 7*sizeof(user[0]), second, result, std::multiplies<int>());
for(int i =0;i< A.length;i++)
{
A[i] = A[i] * B[i];
}
=
假设两个数组的大小相同,那么下面的代码应该可以工作。否则,将需要不同的逻辑。
for(int i = 0; i < 7; i++)
{
int temp = answer[i] * const[i];
}