我在乘以2 arrays
时遇到了麻烦。
首先,我想让用户输入7
int并将其存储在第一个数组中。
第二个数组将是const[] == {2765432};
问题是如何将两个数组中的每个元素相乘
(即)如果用户input = 6192354
,它将首先存储在数组中,然后我希望它与第二个数组相乘。所以它将是
6 * 2.. 1 * 7.. 9 * 6..
等。
答案 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];
}