Нахождение максимума из трех двойных от стандартного ввода - PullRequest
0 голосов
/ 07 марта 2012

У нас есть Java-назначение, в котором мы должны разработать метод, который сканирует одну строку, которая должна содержать три двойных значения, и возвращает наибольшее.Разрешено выбрасывать все возможные исключения.

Вот что я сделал до сих пор:

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 ]

1 голос
/ 07 марта 2012

Нельзя давать двойной параметр методу, пока он ожидает двойной массив.А также вы просите пользователя ввести двойное значение только один раз, вы должны повторить эту процедуру.Измените свой основной метод следующим образом:

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() выглядит нормально, однако при вводе удвоений с консоли используйте запятую (,) вместо точка (.), иначе вы можете получить InputMismatchException.

1 голос
/ 07 марта 2012

измените свой код на

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;

}
0 голосов
/ 07 марта 2012

этот основной код будет читать 3 двойных значения в одной строке, разделять их и передавать в 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));
    }
...