15

重複の可能性:
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 つの異なる値を入力したときに最大値を見つける方法を知りたいです。

4

3 に答える 3

36

2 つのこと: 変数xyzasを変更し、 2 つのパラメーターのみを受け入れるintメソッド as を呼び出します。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);
于 2012-10-09T05:00:39.963 に答える
2

表示されているエラーを提供すると役立ちます。http://docs.oracle.com/javase/7/docs/api/java/lang/Math.htmlを見ると、maxは2つの数値の間の最大値のみを返すため、コードがコンパイルされていない可能性があります。

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

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

于 2012-10-09T04:20:06.097 に答える
2

あなたはもっと知っておくべきですjava.lang.Math.max

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

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

あなたの目的を解決する更新されたコードに従ってみてください:

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);
    }
} 
于 2012-10-09T04:42:11.513 に答える