#include <iostream>
#include <math.h>
#include <ctype.h>
using namespace std;
int main()
{
int n=0,tot=0;
float sum = 0;
float average = 0;
float product = 1;
cout<<"Type an integer and press Enter:\n";
cin>>n;
/*
Your logic goes here
*/
for(int i=1;i<=n;i++){
cout<<sum<<endl;
sum= sum+(1/i);
product=product*1/i;
tot++;
}
cout<<"Sum, product and average of reciprocals are:\n";
cout<<sum<<endl;
cout<<product<<endl;
cout<<average<<sum/tot<<endl;
}
任何人都请告诉我我做错了什么,我的总和总是等于一,我不知道为什么。我把cout和每次迭代打印出来&#34; 1&#34;。我的逻辑是对的,但是我找不到一些错误。
答案 0 :(得分:1)
以下一行
sum= sum+(1/i);
整数除法,当i = 1
评估为1时,否则当i&gt; 1,它将为0.我会使用1.0/i
来强制浮点除法
编辑:我还会对您的product
更新进行更改
答案 1 :(得分:1)