#include <stdio.h>int main() { float c; scanf_s("%f", &c); if (c >= 0.01f&&c<=5.20f) { float d=0.0f; float m ; int n = 2; while (d<c) { m = 1.0f /n; d += m; ++n; } printf("%d\n", n-2); } return 0;}如输入3.71,得出61我是用n-2才计算得到,这样不合理,应该如何修改
1 回答
o学者o
TA贡献7条经验 获得超5个赞
出现多了个2是有两个原因:
题目中最后有一个+1, 所以你初始值 d 应该是 1, 或者 n 从1 开始
等到最后循环出口的时候,也就是 d < c 时已经得到 n 了,但在循环最后多计算了一次 ++n
- 1 回答
- 0 关注
- 1801 浏览
添加回答
举报
0/150
提交
取消