如何打印出数组中的最后一项

时间:2014-03-03 14:42:25

标签: java arrays

我正在尝试创建一个程序,它将运行输入的整数列表,从最小到最大排序,然后打印出最后一项(最大),输入的中间项和第一项(最小整数)。

从代码中可以看出,我有平均值。

“bubbleSort”方法将它们按顺序排列并打印出已排序的数组。

有什么建议吗?

代码:

class statistics{
    public static void main(String agrs[]){
        System.out.println("Enter the number of integers you want to input?");
        int n = EasyIn.getInt();

        //declare arrey called numbers and give it the length of the number enter.
        int[] numbers = new int[n];

        for(int i=0; i<numbers.length; i++){
            System.out.println("Enter number: " + (i+1));
            numbers[i] = EasyIn.getInt();
        }// end of for loop
        // add a switch case for the print outs and a menu.
        bubbleSort(numbers);
        System.out.println("The average is " + averageMethod(numbers));
    }// end of main method.
    public static int averageMethod(int[] nums){
        int total=0;
        int average=0;
        for(int i=0; i<nums.length; i++){
            total = total+nums[i];
            average = total/nums.length;
        }// end of for loop
        return average;
    }// end of totalMethod

    public static void bubbleSort(int[] ar) {
        int temp;
        // this code does the bubble sort
        System.out.println();
        for(int i = ar.length -1; i>0; i--){
            for(int j=0;j<i; j++){
                if(ar[j]>ar[j+1]){
                    temp=ar[j];
                    ar[j]=ar[j + 1];
                    ar[j+1]= temp;
                }
            }
            System.out.print("The sorted array is : ");
            for(int b=0; b<ar.length; b++){
                System.out.print(ar[n] + ", ");
            }
            System.out.println();
        }
    } // end of buble sort
}// end of class.

3 个答案:

答案 0 :(得分:4)

如果您有一个长度为arr的升序排序数组n,则最小元素位于arr[0],最大元素位于arr[n - 1]

答案 1 :(得分:3)

除了Smutje所说的,要获得中间项目: 如果n是奇数,那么它将是arr[(n/2)+1],但如果n是偶数,那么它取决于你所认为的“中间”,例如: 如果n = 4那么n / 2 = 2,这是第三个索引,而(n-1)/ 2 = 1,这是第二个索引,现在哪一个是中间?

答案 2 :(得分:2)

要打印第一个,中间个和最后一个,您可以执行以下操作:

if(numbers != null && numbers.length > 0) {
    System.out.println(numbers[0]);
    System.out.println(numbers[numbers.length / 2]);
    System.out.println(numbers[numbers.length - 1]);
}

另一个建议是不要使用冒泡排序:)