输入10个整数,由大到小输出最大三个( java)

img

img

我想知道我哪里错了

有3处错误
1:双层for循环的下标从0开始
2:内存循环你写的是for(int j = 1;i < 10 - i; i ++)
3:最后取前个值时不需要for循环,直接取数组的0,1,2的元素就行

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int len = 10;
        int[] arr = new int[len];
        for(int i = 0; i < len; i++) {
            arr[i] = sc.nextInt();
        }
        for(int i = 0;i < len; i ++) {
            for(int j = 0;j < len - i - 1; j ++) {
                if(arr[j] < arr[j+1]) {
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }

        System.err.println(arr[0] + " " + arr[1] + " " + arr[2]);
        sc.close();
    }


public class BubbleSort {
    
    int a[];
    public int[] getA(){
        return a;
    }
    public BubbleSort() {
        a = new int[]{8,19,2,3,100,99,1000,888,-1,0};
    }
    public BubbleSort(int a[]) {
        this.a = a;
    }
    //冒泡排序
    public void sort(){
        int t=0,kk=0,len=a.length;
        //外循环控制循环的趟数
        for(int i=0;i<len-1;i++){
            //内循环控制每一趟的次数
            kk=0;
            for(int j=0;j<len-i-1;j++){
                //打印每循环一次后数据的变化
                kk++;
//                System.out.println("第"+(i+1)+"趟的第"+kk+"次");
                if(a[j]>a[j+1]){
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
//                print();
            }
        }
        System.out.println("排序后顺序如下:");
        print();
    }
    public void print(){
        
        for (int e : a) {
            System.out.print(e+"\t");
        }
        System.out.println("");
    }
    public static void main(String[] args) {
        BubbleSort bubbleSort = new BubbleSort();
        System.out.println("排序前顺序如下:");
        bubbleSort.print();
        //排序
        long start = System.currentTimeMillis();
        bubbleSort.sort();
        long end = System.currentTimeMillis()-start;
        System.out.println("排序用时:"+end +"毫秒");
    }
}