c ++ - 在数组中查找元素和元素的乘积

时间:2017-03-30 23:04:18

标签: c++ arrays

我对c ++很陌生,我遇到了麻烦。 它显示正确的总和,但产品不是。

用户指定他们输入的数字,输入数字,然后程序打印输入的所有数字的总和和乘积。

什么似乎是它的问题?

以下是代码:

#include <iostream>

using namespace std;
int main()
{
int arr[20],i,n,sum=0,product=0;
cout<<"How many elements you want to enter?: ";
cin>>n;


cout << "Please enter " << n << " values to find their sum and product" <<endl;

for(i=0;i<n;i++)
{
cin >> arr[i];
cout << "value #" << i << ": " << arr[i] << " entered." << endl;
}

for(i=0;i<n;i++)
{
sum=sum+arr[i];
}

 for(i=0;i<n;i++)
 {
 product=product*arr[i];
}
cout<<"Sum is "<<sum<<endl;
cout<<"Product is "<<product;



 return 0;
}

3 个答案:

答案 0 :(得分:1)

你所拥有的是一个简单的数学错误。您将System.setProperty("hadoop.home.dir", "c:/winutil/"); System.setProperty("spark.sql.warehouse.dir", "file:///C:/spark-warehouse"); val conf = new SparkConf().setAppName("test").setMaster("local[*]") val sc = new SparkContext(conf) val lines = sc.textFile("C:/user.txt") 变量声明为0,任何乘以0的值等于0,如果将product的值更改为1,它将解决您的问题。

答案 1 :(得分:0)

变量product初始化为0,因此涉及它的任何乘法的乘积也将为0.将其初始化为1,即乘法的中性元素,您应该得到正确的结果。

答案 2 :(得分:0)

首先,您的错误是将产品初始化为0。 此外,这是一种使用c ++算法添加和乘法数组元素的“优雅”方法:

#include<functional>
#include<numeric>
#include<vector>

using namespace std;

int main(){
   vector<int> nums = { 1,2,3,4,5 };
   vector<int> sums(nums.size(), 0);
   vector<int>products(nums.size());
   std::partial_sum(nums.begin(), nums.end(), sums.begin());
   std::partial_sum(nums.begin(), nums.end(), products.begin(), std::multiplies<int>());
}

现在向量sums的元素包含nums向量的运行总和: 1,3,6,10,15 products向量的元素包含运行产品: 1,2,6,24,120