2014-10-08 360 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);

相关问题