使用二维阵列创建坡率计算器



我很难理解如何制作程序。程序应该看起来完全像这样:

Number of students: 3
Number of exams   : 3
Enter student's data (first name follow by exam scores):
Joe 85 88 93
Mike 90 100 97
Bill 50 68 73
Name E1     E2     E3     Grade

Joe  85     88     93     88.666666666667
Mike 90     100    97     95.666666666667
Bill 50     68     73     63.666666666664

我正在学习Java课程,所以本周我刚刚学习了数组。

到目前为止,我的代码是这样的。

import java.util.Scanner;
public class GradeCalcWithArrays {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int students = 0;
        int exams = 0;
        System.out.println("Number of students: ");
        students = s.nextInt();
        String names[] = new String[students];
        System.out.println("Number of exams: ");
        exams = s.nextInt();
        int scores[][] = new int[students][exams];
        for (int i, j = 0;;) {
            System.out
                    .println("Enter student's data (first name followed by exams scores):");
            String studentnames = s.nextLine();
            studentnames = names[3];
            int e1 = s.nextInt();
            e1 = scores[0][0];
            int e2 = s.nextInt();
            e2 = scores[0][2];
            int e3 = s.nextInt();
            e3 = scores[0][3];
        }
    }
}

我很想在这些数组方面得到一些帮助。我觉得我尝试输入的方式有问题。但一旦我得到了老师说我需要使用的双数组,我就不知所措了,我不知道如何输入数组。非常感谢您的帮助。

到目前为止,我的程序的输出也是:

Number of students: 3
Number of exams: 3
Enter student's data (first name follow by exam scores):
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
    at GradeCalcWithArrays.main(GradeCalcWithArrays.java:25)

如果这也是提供帮助的一个因素,那么我使用Eclipse。

数组索引从0开始。由于name是一个可以容纳3个元素的String数组,因此有效索引为0-2。您尝试将Stringstudentnames)存储在name[3]中,这是一个无效位置。因此,您会得到一个ArrayOutOfBounds异常。

所以你的代码应该是:

import java.util.Scanner;
public class GradeCalcWithArrays {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int students = 0;
        int exams = 0;
        System.out.println("Number of students: ");
        students = s.nextInt();
        String names[] = new String[students];
        System.out.println("Number of exams: ");
        exams = s.nextInt();
        int scores[][] = new int[student][exams];
        for (int i = 0;i<students; i++) {
            System.out.println("Enter student "+ i+1 +" data (first name followed by exams scores):");
            names[i] = s.nextLine();
            for(int j=0;j<exams;j++)
            {
                scores[i][j] = s.nextInt();
            }
        }
     //Rest of your code to print the table goes here
    }
}

最新更新