繁体   English   中英

使用2D数组创建成绩计算器

[英]Creating a Grade Calculator using a 2D Array

我在理解如何编写程序方面遇到困难。 该程序应该看起来像这样:

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课程,因此本周我刚刚学习了Arrays。

到目前为止,我的代码看起来像这样。

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开始。 您尝试在name[3]存储一个Stringstudentnames ),这是无效的位置。 因此,您将获得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
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM