从标准输入中找出三个双打中的最大值

时间:2012-03-07 10:23:58

标签: java double java.util.scanner

我们有一个java赋值,我们应该开发一个方法来扫描一行,该行应该包含三个double值并返回最大值。允许抛出所有可能的异常。

这是我到目前为止所做的:

import java.util.Scanner;

 public class s3dv {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double entered;
        System.out.println("Enter 3 values to find the maximum:");
        entered = input.nextDouble();
        System.out.println("Maximum is - " + getMaxValue(entered));
    }

    //Find maximum (largest) value in array using loop  
    public static double getMaxValue(double[] numbers){  
        double maxValue = numbers[0];  
        for(int i = 1; i < numbers.length; i++){  
            if(numbers[i] > maxValue){  
                maxValue = numbers[i];
            }
        }
        return maxValue;  
    }  // End getMaxValue method
}

我在第15行遇到错误。

3 个答案:

答案 0 :(得分:1)

将您的代码更改为

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input = new Scanner(System.in);
    double[] entered = new double[3]; 
    System.out.println("Enter 3 values to find the maximum:");
    for(int i=0;i<3;i++){
    entered[i] = input.nextDouble();
    }
    System.out.println("Maximum is - " + getMaxValue(entered)); 
}

//Find maximum (largest) value in array using loop
public static double getMaxValue(double[] numbers){
double maxValue = numbers[0];
for(int i = 1; i < numbers.length; i++){
if(numbers[i] > maxValue){
maxValue = numbers[i]; } } return maxValue;

}

答案 1 :(得分:1)

在期望双数组时,不能为方法提供双参数。而且您还要求用户只输入一次double值,您应该重复该过程。将主要方法更改为:

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    double[] entered = new double[3];
    int counter = 0;
    while (counter != 3)
    {
        System.out.println("Enter a double value:");
        entered[counter++] = input.nextDouble();
    }
    System.out.println("Maximum is - " + getMaxValue(entered));
}

您的getMaxValue()方法似乎没问题,但是当从控制台输入双打使用逗号(,)而不是点(。)时,您可能会得到{{} 1}}否则。

答案 2 :(得分:0)

这个主代码会在一行中读取3个double值,将它们拆分并传递给getMaxValue

 public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String userLine, lineSplitted[];

        System.out.println("Enter 3 values to find the maximum:");
        userLine = input.nextLine();
        lineSplitted=userLine.split(" ");

        double entered[]=new double[lineSplitted.length];
        for (int i=0; i<lineSplitted.length; i++) entered[i]=Double.valueOf(lineSplitted[i]);

        System.out.println("Maximum is - " + getMaxValue(entered));
    }