web-dev-qa-db-ja.com

javaで最大3つの数字を見つける必要がある

可能性のある複製:
異なるデータ型のJavaで最大3つの数値を見つけます(基本Java)

スキャナーを使用して3つの整数(正)を読み取り、3つの最大数を表示するプログラムを作成します。 (演算子&&または||を使用せずに完了してください。これらの演算子については、まもなくクラスで説明します。同様にループは不要です。)

Some sample run: 

Please input 3 integers: 5 8 3
The max of three is: 8

Please input 3 integers: 5 3 1
The max of three is 5

import Java.lang.Math;
import Java.util.Scanner;
public class max {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please input 3 integers: ");
        String x = keyboard.nextLine();
        String y = keyboard.nextLine();
        String z = keyboard.nextLine();
        int max = Math.max(x,y,z);
        System.out.println(x + " " + y + " "+z);
        System.out.println("The max of three is: " + max);
    }
}   

このコードの何が問題で、3つの異なる値を入力したときに最大値を見つける方法を知りたいです。

10
user1730357

2つのこと:変数xyzintとして変更し、2つのパラメーターを受け入れるようにメソッドをMath.max(Math.max(x,y),z)として呼び出します。のみ。

要約では、以下を変更します。

    String x = keyboard.nextLine();
    String y = keyboard.nextLine();
    String z = keyboard.nextLine();
    int max = Math.max(x,y,z);

    int x = keyboard.nextInt();
    int y = keyboard.nextInt();
    int z = keyboard.nextInt();
    int max =  Math.max(Math.max(x,y),z);
26
Yogendra Singh

_Java.lang.Math.max_について詳しく知る必要があります。

  1. Java.lang.Math.max(arg1,arg2)は2つの引数のみを受け入れますが、コードに3つの引数を記述しています。
  2. 2つの引数はdoubleintlongおよびfloatである必要がありますが、Math.max関数でString引数を記述しています。必要なタイプでそれらを解析する必要があります。

上記の不一致により、コードはコンパイル時エラーを生成します。

次の更新されたコードを試してみてください、それはあなたの目的を解決します:

_import Java.lang.Math;
import Java.util.Scanner;
public class max {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please input 3 integers: ");
        int x = Integer.parseInt(keyboard.nextLine());
        int y = Integer.parseInt(keyboard.nextLine());
        int z = Integer.parseInt(keyboard.nextLine());
        int max = Math.max(x,y);
        if(max>y){ //suppose x is max then compare x with z to find max number
            max = Math.max(x,z);    
        }
        else{ //if y is max then compare y with z to find max number
            max = Math.max(y,z);    
        }
        System.out.println("The max of three is: " + max);
    }
} 
_
2
Arun Kumar

表示されているエラーを提供した場合に役立ちます。 http://docs.Oracle.com/javase/7/docs/api/Java/lang/Math.html を見ると、maxは2つの数値の間の最大値のみを返すことがわかります。あなたはコードさえコンパイルしていません。

最初にすべてのコンパイルエラーを解決します。

その後、宿題は、最初の2つを一緒に比較し、その最大結果を3番目の値と比較することにより、3つの数値の最大値を見つけることで構成されます。今すぐ答えを見つけるのに十分なはずです。

2
Lolo