【发布时间】:2018-04-01 08:39:09
【问题描述】:
当我输入此代码时,我得到的答案是 58.18
public class text {
public static void main(String[] args) {
//Data Array
double data[]={19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};
//Finding minimum angle
double minimum_angle=0;
for(int counter=0;counter<data.length;counter++){
if(data[counter]<data[counter++]){
minimum_angle=data[counter];
}
else {minimum_angle=data[counter++];}
}
System.out.print(minimum_angle);
}
}
但是当我输入相同的内容并稍作修改时,我得到 55.91。为什么会这样?
public class Main_class {
public static void main(String args[]){
//Data Array
double data[]={19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};
//Finding minimum angle
double minimum_angle=0;
for(int counter=0;counter<data.length;counter++){
double x=data[counter];
double y=data[counter++];
if(x<y){
minimum_angle=x;
}
else {
minimum_angle=y;
}
}
System.out.print(minimum_angle);
}
【问题讨论】:
-
1) 你显然在撒谎:代码正在工作。 2)什么是“小区别”?不要让你的听众梳理你的代码。
-
如果你调用
counter++两次,你将counter增加两次 -
之所以如此,是因为您的算法没有做它应该做的事情。停止使用 ++。停止将一个元素与下一个元素进行比较。将每个元素与当前最小值进行比较。
-
您的比较似乎有误。您将当前值与下一个值进行比较。但是你想找到最小的角度,不是吗?所以比较
data[counter]和minimum_angle。