java编程过程中的错误,求解决

2025-03-12 14:29:38
推荐回答(4个)
回答1:

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入学生的人数");
        int renshu = in.nextInt();
        System.out.println("请输入课程的数目");
        int courseNum = in.nextInt();
        String[] name = new String[renshu];
        String[] course = new String[courseNum];
        int[][] number = new int[renshu][courseNum];
        int[] sum = new int[renshu];
        int[] avg = new int[renshu];
        String[] str = new String[renshu];
        for (int i = 0; i < course.length; i++) {
            System.out.println("请定义第" + (i + 1) + "门课程的名字");
            course[i] = in.next();
        }
        for (int i = 0; i < renshu; i++) {
            int S = 0;
            System.out.println("请输入学生的姓名:");
            name[i] = in.next();
            String str11 = "";
            for (int j = 0; j < courseNum; j++) {
                System.out.println("请输入学生" + name[i] + course[j] + "的成绩");
                number[i][j] = in.nextInt();
                S += number[i][j];
                str11 += number[i][j] + "\t";
            }
            sum[i] = S;
            avg[i] = S / courseNum;
            str[i] = name[i] + "\t" + str11 + sum[i] + "\t" + avg[i];
        }
        for (int i = 0; i < sum.length; i++) {
            for (int j = 0; j < sum.length; j++) {
                if (sum[j] > sum[j]) {
                    int t1 = sum[j];
                    String t2 = str[j];
                    sum[j] = sum[j];
                    str[j] = str[j];
                    sum[j] = t1;
                    str[j] = t2;
                }
            }
        }
        System.out.print("学生");
        for (int i = 0; i < course.length; i++) {
            System.out.print("\t" + course[i]);
        }

        System.out.print("\t总分\t平均分\t排行榜");
        System.out.println();
        for (int i = 0; i < renshu; i++) {
            System.out.println(str[i] + "\t第" + (i + 1) + "名");
        }
    }

回答2:

在for(int j=0;j

回答3:

你好,
你的代码36行sum[j+1]数组越界了,如sum的length是5,当j=4时,sum[j+1]为sum[5]就会越界。
希望能帮到你。

回答4:

数组那里越界了 ,看exception。好好检查数组。