2012-10-09 50 views
6

可能重複:
Find the max of 3 numbers in Java with different data types (Basic Java)需要找到三個數字的最大Java中

編寫使用掃描儀讀取三個整數(正)一個程序顯示的最大數量三。 (請填寫,而無需使用運營商&&||的。這些運營商將在課堂上覆蓋不久,同樣的循環是不需要的。)

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個不同的值時,最大值。

+2

兩兩件事:更改變量'x','y','z'爲'int'並調用'最大'Math.max(Math.max(x,y),z)'方法,因爲它只接受兩個參數。檢查固定代碼段的答案。 –

+0

Apache的[NumberUtils.max(int a,int b,int c)](https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/math/ NumberUtils.html)返回三個int值的最大值。 – RKumsher

+0

'Math.max'只接受兩個參數,而這些參數必須是數字。所以'Math.max(Math.max(Integer。valueOf(x),Integer.valueOf(y)),Integer.valueOf(z))'將解決這個問題。 – user3932000

回答

2

如果您提供了您所看到的錯誤,這將有所幫助。看看http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html,你會看到max只返回兩個數字之間的最大值,所以你的代碼很可能不會編譯。

首先解決所有編譯錯誤。

然後你的家庭作業將包括通過比較前兩個數字並將最大結果與第三個數值進行比較來找出最多三個數字。你應該有足夠的能力現在找到你的答案。

2

你應該知道更多關於java.lang.Math.max

  1. java.lang.Math.max(arg1,arg2)只接受2個參數,但你 在你的代碼編寫3個參數。
  2. 的2個參數應該是doubleintlongfloat但你是 寫作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); 
    } 
} 
22

兩件事情:改變變量xyzint,並調用方法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); 
相關問題