2014-10-08 323 views
-3

我在正確的軌道上嗎?Java程序打印出三個用戶輸入的數字的最大值,最小值和平均值

import java.util.*; 

public class Practice_8_1 { 
    public static void main (String[] args) { 
    Scanner input = new Scanner(System.in); 
    Scanner keyboard = new Scanner(System.in); 

    public static int max (int x, int y, int z){ 
    int maximum = 0; 
    if (x > y && x > z){ 
    return x; 
    } else if (y > z && y > x){ 
     return y; 
     else { 
     return z; 
    } 

    public static int min (int x, int y, int z){ 
    //code for min 
    } 
    public static int average (int x, int y, int z){ 
    //code for average 
    } 
    } 
} 

主要方法到底在幹什麼?我必須使用方法來做到這一點。 預先感謝您。

回答

1
public static int min (int x, int y, int z) { 
    int Min = (y>x)?x:y; 
    Min = (z>Min)?Min:z; 
    return Min; 
} 

public static int max (int x, int y, int z) { 
    int Max = (y>x)?y:x; 
    Max = (z>Max)?z:Max; 
    return Max; 
} 

public static int average (int x, int y, int z) { 
    return (x+y+z)/3; 
} 
0

不要在另一個方法中寫入方法的定義;相反,你會main裏面調用那些方法。 (並且您在max中聲明maximum,但從不使用它。)

0

您可以使用數組將數字放入其中,然後使用將此數組的成員從最低排序到最高排序。這意味着在第一個索引將是最低的數字。 這可能比這三種方法更容易。

import java.util.*; 

public class SortNumbers { 

public static void main(String[] args) { 

    Scanner input = new Scanner(System.in); 

    int[]numbers = new int[3]; 

    for(int i = 0; i < 3; i++) { 

     System.out.println("Type a number:"); 
     numbers[i] = Integer.parseInt(input.nextLine()); 
    } 
    // this sorts the array members from lowest to highest 
    Arrays.sort(numbers); 

    System.out.println("Lowest number is " + numbers[0]); 
    System.out.println("Middle number is " + numbers[1]); 
    System.out.println("Highest number is " + numbers[2]); 
} 
} 

如果您必須使用方法,您可以使用靜態方法對該數組進行排序。

public static int[] sortNumbers(int[] numbers) { 

    Arrays.sort(numbers); 
    return numbers; 
} 

,並在主方法而不是使用Arrays.sort(numbers)使用

numbers = sortNumbers(numbers);

相關問題