程序将打印最大数量和最小数字

时间:2017-12-07 10:51:37

标签: java

我尝试编写程序时遇到了一些麻烦。

double max = 0, min = 0;
int i;
double array[] = new double[10];
Scanner input = new Scanner(System.in);
for (i = 0; i < 10; i++) {
    System.out.println("Give the " + (i + 1) + " number");
    array[i] = input.nextDouble();
}
for (i = 0; i < 10; i++) {
    if (array[i] > max) {
        max = array[i];
    }
    for (i = 0; i < 10; i++) {
        if (array[i] < min) {
            min = array[i];
        }
    }
}
System.out.println("The Max is :" + max);
System.out.println("The Min is :" + min);

当我输入包含一个最大数字和一个最小数字的10个数字时, 结果是 Max是:最大数字 最小值为:0.0

总是最小的我得到0.0无论我输入什么。 No 2我会打字,No 4我会输入一个最小的数字(总是单独启动),每次我得到0.0。

4 个答案:

答案 0 :(得分:3)

您的最小值为零,我假设您的数据没有任何小于零的值。

尝试将min初始值设置为Double.MAX_VALUE

答案 1 :(得分:1)

在数字输入数组之前初始化最大值和最小值,当找到最大值和最小值时,首先在数组中输入数字然后将它们与数组[0]进行比较。 第二件事是你不需要for循环来检查你是否需要更改max或min,你可以在一个for循环中完成。 试试这个:

    double array[] = new double[10];
    int i;
    Scanner input = new Scanner(System.in);
    for (i = 0; i < 10; i++) {
        System.out.println("Give the " + (i + 1) + " number");
        array[i] = input.nextDouble();
    }
    double max = array[0], min = array[0];
    for (i = 0; i < 10; i++) {
        if (array[i] > max) {
            max = array[i];

        }

        if (array[i] < min) {
            min = array[i];
        }
    }
    System.out.println("The Max is :" + max);
    System.out.println("The Min is :" + min);

答案 2 :(得分:0)

你的花括号不合适。您将在SYSOUT之前结束最大循环。

    double max = 0, min = 0;
    int i;

    double array[] = new double[10] ;    
    Scanner input = new Scanner (System.in) ;    
    for (i = 0; i < 10; i++)
    {
        System.out.println("Give the " + (i+1) + " number") ;
        array[i] = input.nextDouble();
    }            
        max = array[0];
        min = array[0];
        for (i = 0; i < 10; i++) {
            if (array[i] > max) {
                max = array[i];
            }

            }

            for (i = 0; i < 10; i++) {                
                if (array[i] < min) {
                    min = array[i];
                }
            }       

        System.out.println("The Max is :" + max);
        System.out.println("The Min is :" + min);

运行它。它会给出正确的结果。

答案 3 :(得分:0)

两个简单的更正:

  1. 您只需将初始化 min和max设置为数组中的某些值。 (例如,数组[0] 为你的问题)
  2. 没有必要使用3 for循环来找到min和max,只需使用一个
  3. 见下面的代码:

    int i;
    double array[] = new double[10] ;
    Scanner input = new Scanner (System.in) ;
    
    System.out.println("Give the " + (1) + " number") ;
    array[0] = input.nextDouble();
    
    double max = array[0], min = array[0];
    
    for (i = 1; i < 10; i++)
    {
        System.out.println("Give the " + (i+1) + " number") ;
        array[i] = input.nextDouble();
    
        if(array[i] > max)
            max = array[i] ;
    
        if (array[i] < min)
            min = array[i];
    }
    
    System.out.println("The Max is :" + max);
    System.out.println("The Min is :" + min);