容易出现的错误
m和sum都是double类型不是Int
除法应该存在精度问题。所以m = 1 / (2*i - 1.0);中应该是1.0不是1.
/*
输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2位小数,单独占一行
样例输入 Copy
3*/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n;
double m;
double sum = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
m = 1 / (2*i - 1.0);
sum += m;
}
cout << setiosflags(ios::fixed) << setprecision(2)<< sum;
return 0;
}