为什么输入任何数,结果都是1.000
#include <iostream>
#include <iomanip>
using namespace std;
int NN(int n) {
int x = 1;
float sum = 0.000;
while (x <= n)
{
sum += 1 / x;
x++;
}
cout << setiosflags(ios::fixed) << setprecision(2) << std::fixed << sum;
return 0;
}
int main() {
int n;
while (1)
{
cout << "请输入1—20000之间的一个整数:"; cin >> n; cout << endl;
if ((n >= 1) && (n <= 20000)) {
cout << NN(n) << endl;
break;
}
else { cout << "输入错误,请重新输入" << endl; }
}
}