本人大一java完完全全的初学者上学期学习了c++,现在开始学习java,老师留了java作业是关于数组排序的。仿照c++的书上写(套用)了个用冒泡法的程序可是输出让我很尴尬啊,自己也解决不了,不知道是哪里错了。后来改写成java的程序更是运行不成。

解决方案 »

  1.   

    看不太清你截图的的代码,实现冒泡算法的写法有很多,我写了一个,要注意的是下面的代码并没有处理输入不为整数的情况.仅供参考
        public static void main(String[] args) {
            System.out.print("请输入元素个数:");
            Scanner scanner = new Scanner(System.in);
            int length = scanner.nextInt();
            int[] score = new int[length];
            for (int i = 0; i < length; i++) {
                System.out.print("请输入第" + (i + 1) + "个成绩:");
                score[i] = scanner.nextInt();
            }
            //冒泡排序.
            int temp;
            for (int j = 0; j < length; j++) {
                for (int k = j + 1; k < length; k++) {
                    temp = score[j];
                    if (score[j] > score[k]) {
                        score[j] = score[k];
                        score[k] = temp;
                    }
                }
            }
            System.out.println(Arrays.toString(score));
        }
      

  2.   

    NullPointerException出现的原因是数组大小未知,却对数组元素进行操作。你在定义的时候使用的是a[] = null 是个空数组,后面直接用下标赋值当然会出错了。