lwthree @ 2023-09-15 20:33:48
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k;
int i=1;
double sum = 0;
cin>>k;
while (sum<=k)
{
sum+=1.0/i;
i+=1;
}
printf("%d",sum);
return 0;
}
by lwthree @ 2023-09-15 20:37:01
求大佬回复!!!
by 小小蒲公英 @ 2023-09-15 20:56:05
printf("%d",sum);
改成
printf("%d",i-1);
by gf20220934 @ 2023-09-15 20:57:57
最后输出应该为i-1
数据由1/1至1/i,由于在循环中,
sum+=1.0/i
之后跳出循环之前有i+=1所以输出i-1。
最后:建议以后不要随意scanf,printf和cin,cout混用。
由于个人原因,一直没发出来,请见谅。
by gf20220934 @ 2023-09-15 21:02:38
@lwthree
by lwthree @ 2023-09-15 21:26:23
首先,谢佬! 然后为啥我输入是1的时候 sum输出是0 虽然这里确实写错了 但按理来说也不是0吧
by lwthree @ 2023-09-15 21:26:50
@gf20220934
by lwthree @ 2023-09-15 21:29:48
不用了 我知道了 printf 应该 用 lf 输出 sum 的
最近IQ不在线。。。
by gf20220934 @ 2023-09-16 09:01:18
@lwthree
有没有可能double数据型要用%lf输出呢?
(对不起我昨晚没看见你的回复)