大于三步的时候数据就不对了
by 醉了酒的李白 @ 2017-10-25 22:02:57
此题简单,注意思路。
附上代码#include<iostream>
```cpp
using namespace std;
int main()
{
float x,a=2;int b=0;
cin>>x;
while((x>0)&&(x<100))
{
x=x-a;
a=a*0.98;
b=b+1;
}
cout<<b<<endl;
return 0;
}
```
by 市场花园行动 @ 2017-10-25 22:05:26
@[市场花园行动](/space/show?uid=60411) 为什么一定要重新定义一个变量代替它游的距离,不能直接像我那样么..
by 醉了酒的李白 @ 2017-10-25 22:06:44
不行啊,这样你的”b“会变的,b不能用来做计程器,因为做了他就不是2\*0.98了;
by 市场花园行动 @ 2017-10-25 22:10:48
@[市场花园行动](/space/show?uid=60411) 拜托能不能为我祥解一下什么意思,这里不是很懂b会变
by 醉了酒的李白 @ 2017-10-25 22:15:04
你用Dev-c++模拟一下计算机运行过程就明白了,试试看?
by 市场花园行动 @ 2017-10-25 22:17:17
会模拟运行过程不??
by 市场花园行动 @ 2017-10-25 22:18:59
@[市场花园行动](/space/show?uid=60411) 我试了,在距离小于5.8808,也就是3步之内正常,但大于三步后就有问题了,比如10m,它输出的还是4
by 醉了酒的李白 @ 2017-10-25 22:22:05
就是把你的所有变量都列到一行里,顺着读程序,看看各个变量的值有什么变化
by 市场花园行动 @ 2017-10-25 22:22:23
因为你的b有问题啊
by 市场花园行动 @ 2017-10-25 22:23:00