gpt4 book ai didi

Java简单的参差不齐的数组查询

转载 作者:行者123 更新时间:2023-12-01 11:49:36 28 4
gpt4 key购买 nike

我正在尝试编写一个 Java 程序,它将作为输入:

  • 学生人数
  • 每个学生修读的类(class)数量

然后它将计算每个学生的平均值。

但是我在尝试读取这些值时遇到了麻烦。请让我知道我可以采取什么措施来解决这个问题。

我的代码是:

package q3;

import java.util.Scanner;
public class Q3 {

public static void main(String[] args) {

int [][] students;
System.out.println("How many students? : ");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
students = new int[num][];
int [] numofcourses = new int[num];

for(int i = 0;i<num;i++)
{
System.out.print("How many courses for student " + (i+1) + " : ");
numofcourses[i] = in.nextInt();
for(int j = 0;j<numofcourses[i];j++)
{
System.out.print("Enter grade " + (j+1) + " for student " + (i+1) + " : ");
students[i][j] = in.nextInt();
}
}
}

}

最佳答案

基本上你的问题出在这一行

students = new int[num][];

students[i][j] = in.nextInt();

这个。因为在java数组中你需要在使用它之前初始化数组。但在第一行中,您没有输入正确的数组大小,这意味着二维数组将无法正确定义。因此,一旦您尝试使用我在这里提到的第二条语句来调用它,它显然是空的。

所以你的想法应该是将动态值设置为类(class)数。但就像在 java 中一样,您应该在使用数组之前定义数组的大小。因此,在您的情况下,您的想法应该是将另一个数组作为类(class)放入您的基本数组(学生)中,这将是一个 int 数组,然后您可以使用它插入类(class)。

所以最好选择

Object[][] data = new Object[numberOfStudents][1];

for循环

numOFSubjects = nextInt();
int[] no_of_sub = new int[numOFSubjects];

然后

data[i][0] = no_of_sub ;

然后申请成绩for 循环 i 和 j

data[i][0][j] = nextInt();

完成我想你明白了。抱歉,有虚拟代码。我想它就快到了。

关于Java简单的参差不齐的数组查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28902117/

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