2012-03-07 4 views
0

私たちは、3つのdouble値を含むと考えられている行をスキャンして最大値を返すメソッドを開発することになっています。考えられるすべての例外をスローすることは許可されています。私はライン15標準入力から最大3つのdoubleを見つける

+0

に渡します、あなたが正確に取得しているエラーは何ですか? – greg84

+2

ダブルスの配列を期待しているgetMaxValueにdoubleを渡しています... –

+0

input.nextDouble()は配列を返しません。あなたはそれを修正する必要があります –

答えて

1

変更でエラーを抱えている

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 
} 

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

コードの貼り付けは、宿題に関する質問には理想的な答えではありません。 – sgowd

+0

forループは0から始まらないのですか? – benfrasersimpson

+0

いいえ、0番目の要素が既に変数maxValueに格納されているためです。 –

1

にあなたのコードあなたが与えることはできません。ここで

は、私がこれまで何をやったかでありますダブル・パラメータをメソッドに渡します。また、二重値を1回入力するようにユーザーに要求すると、その手順を繰り返す必要があります。これにあなたのmainメソッドを変更します(。)

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()方法はOKと思われる、しかしコンソールを使用カンマ(、)ではなくドットのからダブルスを入力するとき、あなたはInputMismatchExceptionをそうかもしれません。

+0

質問をループすることはできません。 – Coolai

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)); 
    }