在C+中乘以并显示数组的值+; 我试图完成一个C++练习,其中显示一个数组,并提示用户输入一个乘法器,这将导致显示的初始数字乘以用户的输入。以下是我目前掌握的代码: #include <iostream> using namespace std; int main() { int array[5] = { 1, 2, 3, 4, 5 }; for (const auto& a : array) { std::cout << a << std::endl; } double multiplier; cout << "Input a multiplier: "; cin >> multiplier; for (int array = 1; array <= 5; ++array) { array == multiplier * array; std::cout << array << std::endl; } }
目标是获得以下输出:在C+中乘以并显示数组的值+; 我试图完成一个C++练习,其中显示一个数组,并提示用户输入一个乘法器,这将导致显示的初始数字乘以用户的输入。以下是我目前掌握的代码: #include <iostream> using namespace std; int main() { int array[5] = { 1, 2, 3, 4, 5 }; for (const auto& a : array) { std::cout << a << std::endl; } double multiplier; cout << "Input a multiplier: "; cin >> multiplier; for (int array = 1; array <= 5; ++array) { array == multiplier * array; std::cout << array << std::endl; } },c++,C++,目标是获得以下输出: 1 2 3 4 5 Input a multiplier: 2 2 4
1
2
3
4
5
Input a multiplier: 2
2
4
6
8
10
任何帮助或代码改进都将不胜感激,因为要完成此练习,唯一需要做的就是弄清楚如何乘法和显示乘法值。提前谢谢你 使用=而不是==。目前,它只是计算逻辑语句,而不是将其设置为新值。 此外,您需要将for循环中的“int-array”更改为不同的名称,以免与名为array的数组混淆。在for循环中调用变量,比如“inti”。
因此,所讨论的行不是“array==multiplier*array”,而是类似于“int j=multiplier*array[i]”,然后让它打印出j而不是array。更简单的方法是使用另一个基于范围的for循环,而不是索引版本:
for (auto& a : array)
{
a *= multiplier;
std::cout << a << std::endl;
}
for(自动&a:array)
{
a*=乘数;
std::cout您的代码有三个大问题:
1.命名约定。
不要将数组和临时for循环变量命名为同一个名称。这将导致进一步的问题,我将对此进行说明
2.操作员不正确
正如minterm所提到的,您使用的是比较运算符而不是相等运算符。但仅此一点并不能解决您的问题
3.不访问数组值
实际上并不是将数组值与乘数相乘。您必须访问元素,这意味着您不能从1开始索引
for (int i = 0; i < 5; i++){
array[i] *= multiplier
cout << array[i] << endl;
}
for(int i=0;i<5;i++){
数组[i]*=乘法器
你有很多事情是不正确的
首先是对数组
值的范围过大(可能不是正确的术语)
在for循环外部声明了一个array
值,并且在for循环内部再次使用值array
作为计数器。因此,您实际上没有对数组做任何操作。您实际上是在尝试对初始化变量做一些操作
其次,您使用==而不是=
您使用的是比较运算符(=)而不是赋值运算符(=),但还有其他大的“否”
array
是一个int[5]
而不仅仅是一个int
要实际修改数组的每个元素,您需要引用索引,方法是说array[index]
,其中index是数组长度-1的值,因此在您的情况下为4
您正在使用一个双乘数
,并试图将其应用于int*
如果您尝试乘以2.5之类的双精度值,则数组值将是int,而不是带有十进制值的数字。您应该将int数组[]
变成double数组[]
不访问数组,从索引0开始
当在数组中循环时,第一个索引始终为0。您使用的是array=1
和array哇,这真的是用两个不同的array
变量编译的吗?无论哪种方式,读者都会感到非常困惑。也许第二个变量可能是arrayIndex
或其他什么。@Kenwaynevanderinde不同的范围。CTrainee,小心你在这里所做的。这可能不是你想要的。
for (const auto& a : array)
{
std::cout << a * multiplier << std::endl;
}
for (int i = 0; i < 5; i++){
array[i] *= multiplier
cout << array[i] << endl;
}
for (int index = 0; index < 5; index++)
{
array[index] *= multiplier; // Or you can use array[index] = multiplier * array[index]
std::cout << array[index] << std::endl;
}