数组java中的最小值

时间:2016-02-23 21:26:02

标签: java

所以我需要一些帮助,也许你们可以查看我的代码,看看它为什么不起作用以及我缺少什么。

以下是代码:

import java.util.Scanner;
public class min;
    public static void main(string[] args) {
        Scanner input = new Scanner(System.in);
        double[] list = new double[4];
        double min = list[0];
        System.out.print("Enter " + list.length + " numbers: ");
        for (int i = 0; i < list.length; i++) {
            list[i] = input.nextDouble();
            if (list[i] < min) {
                min = list[i];
            }
        }
        System.out.println(min);
    }
}

那么,为什么当我有大于面对min时它会带回0.0?

当我翻转周围的标志时,它会起作用并带回最大的数字,当我输出一个数字列表时,它可以同时使用最小值和最大值,而不是用于最小输入。

2 个答案:

答案 0 :(得分:5)

初始化min时,list中的每个值都将为零,因为您尚未填充list,数字数组的默认内容为零。

这意味着这一行:

double min = list[0];

min设置为零,因此只有传入负数时才会将其替换为新值。

min初始化为Double.MAX_VALUE,或使用两个循环;一个填充数组,另一个填充分钟。在两个循环之间初始化min

答案 1 :(得分:0)

您也可以在用户输入后将min初始化为input.nextDouble,并将for循环更改为从1开始