Java改错

来源:百度知道 编辑:UC知道 时间:2024/05/25 01:50:55
要求是:球从100米高度落下,每次反弹回元一半,再落下,秋再 几次后反弹高度小于0.1米,并求折尺 落地共经过几米
public class WrongCode {
public static void main(String[] args)
{ double sn=100.0;
double hn=100.0/2;
int n;
for(n=1;n<=20;n++){
if(hn<0.1){
break;
}
sn=sn+2*hn/2;
hn=hn/2;
}
System.out.println("在第"+(n-1)+"次反弹高度小于0.1米!");
System.out.println("第"+(n-1)+"次落地共经过"+sn+"米");
System.out.println("第"+(n-1)+"次反弹的高度是"+hn+"米");
}
}
代码 有 逻辑错误 ,结果有误和 纯数学做出来不对

逻辑的确有错误 多写写调试的代码 就容易发现错误了 下边是我写的

public class WrongCode {
public static void main(String[] args) {
double sn = 0.0;// 原始高度100米落下
double hn = 0.0;// 本次反弹高度为原始高度的一半
int n;
double len = 0;// len 表示初始路程

sn = 100.0;
hn = sn / 2;
n = 1;
len = sn + hn + hn;// 第一次反弹走过的路程
System.out.println("初始下落距离:" + sn);
System.out.println("下一次反弹高度:" + hn);
System.out.println("初次反弹然后再落地所经过的路程:" + len);
System.out.println("至今反弹的次数 :" + n);

for (n=2;; n++) {
if (hn > 0.1) {
System.out.println("******************");
hn=hn/2;
len=len+hn+hn;
System.out.println("第"+n+"次下落距离:" +hn);
System.out.println("第"+n+"次反弹然后再落地所经过的路程:" + len);
System.out.println("反弹的次数 :" + n);
} else {
break;
}
}
}
}

控制台输出结果是:

******