#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 關注
- 1836 瀏覽
添加回答
舉報
0/150
提交
取消