```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
double x,dist=2;//输入和每步距离
double sum=0;//总距离
int i=0;
scanf("%lf",&x);
while(sum<=x)
{
sum=sum+dist;
dist=dist*0.98;
i++;
}
printf("%d",i);
//system("pause");
return 0;
}
```
这是我的,你先看看吧。
by Clever_Jimmy @ 2018-02-21 17:45:48
@[Kristella](/space/show?uid=86623)
你的
do-while
循环里面很复杂,不如用while
还有那个current=2.0*(0.98,(step-1));
我没看懂
by Clever_Jimmy @ 2018-02-21 17:52:15
楼上大佬++
do while是先做后判断
注意你的判断次数
while更实在,也好判断
:)耿直的笑
by 桜Sakura @ 2018-02-21 18:00:47
@[Kristella](/space/show?uid=86623) 为什么只有我认为你是scanf输入double型的时候用了%f而不是标准的%lf??
~~难道是因为我很菜吗?~~
by namespace_std @ 2018-02-21 21:46:47
@[Kristella](/space/show?uid=86623) 在我的 C-Free 5 上你的程序scanf一句中的%f改成%lf之后输入样例结果是3,不改结果就是2
也许就是这里出锅了......
by namespace_std @ 2018-02-21 21:59:16
@[namespace_std](/space/show?uid=85053) 喔喔,是我疏忽了,谢谢解答!
by Kristella @ 2018-02-22 10:20:43
@[Clever_Jimmy](/space/show?uid=78407) 前面引入了math.h头文件,current是用0.98的次方算出的是本步游的距离,还有谢谢热心解答!
by Kristella @ 2018-02-22 10:26:33
@[namespace_std](/space/show?uid=85053) 把%f改成%lf还是WA,还是0分><
by Kristella @ 2018-02-22 10:30:26
@[Kristella](/space/show?uid=86623) 那我这头编译器到最后current都成32了?!
by namespace_std @ 2018-02-22 10:37:16
@[namespace_std](/space/show?uid=85053) 哈?啥意思,是这个表达式有问题?
by Kristella @ 2018-02-22 10:39:12