当我输入此代码时,我得到答案为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);
}
答案 0 :(得分:3)
您的两个代码段都不正确。
您正在滥用后增量运算符。
if(data[counter]<data[counter++])
永远不会是真的,就像
一样if(data[counter]<data[counter])
永远不会成真。
后增量运算符返回递增变量的原始值。
不清楚为什么要在循环体中递增计数器。您应该只在for语句中增加它。为了找到最低要求,您必须将data[counter]
与minimum_angle
进行比较:
double minimum_angle = Double.MAX_VALUE;
for(int counter = 0; counter < data.length; counter++) {
if(data[counter] < minimum_angle) {
minimum_angle = data[counter];
}
}
答案 1 :(得分:0)
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 = data[0];
for(int counter = 1;counter < data.length;counter ++){
if(minimum_angle < data[counter]){
minimum_angle = data[counter];
}
}
System.out.print(minimum_angle);
}
}
使用data [0]初始化minimum_angle,并将minimum_angle与索引1中的数据数组进行比较。如果minimum_angle小于data [index] value,则将minimum_angle分配给data [index]以从数组中获取最小double值。
答案 2 :(得分:0)
看起来你是编程新手。 无论如何,请尝试下面的代码。
double data[]={19.2,22.3,32.51,39,41.16,49.46,55.91,58.18};
double minimum_angle=data[0];
for(int counter=0;counter<data.length;counter++)
if(minimum_angle < data[counter])
minimum_angle = data[counter];
System.out.print(minimum_angle);