gpt4 book ai didi

java - 使用二维数组创建成绩计算器

转载 作者:太空宇宙 更新时间:2023-11-04 14:25:03 24 4
gpt4 key购买 nike

我很难理解如何制作我的程序。该程序应如下所示:

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 简介类(class),所以这周我刚刚学习了数组。

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

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 也是提供帮助的一个因素,那么我正在使用 Eclipse。

最佳答案

数组索引从 0 开始。由于 name 是一个 String 数组,可以容纳 3 个元素,因此有效索引是从 0-2 。您尝试将 String(studentnames) 存储在 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
}
}

关于java - 使用二维数组创建成绩计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com