该课程应为40名不同的学生读取8分 使用2D数组。 列显示八个标记。显示40个不同的学生。
package pkg2d.array;
import java.util.Scanner;
public class Array
{
public static void main(String[] args)
{
//delcare arrays
double[][] marksTable;
//Declare variables
double mark;
int studentNo;
int moduleNo;
//Allocate elements
marksTable = new double[40][8];
//Create Scanner object
Scanner fromKeyboard = new Scanner(System.in);
for(studentNo = 1; studentNo <= 40; studentNo++)
{
System.out.print("Enter marks for student no " +studentNo);
for (moduleNo = 1; moduleNo <= 8; moduleNo++)
{
System.out.print("Mark for student "+studentNo+" for module no "+moduleNo+":");
mark = fromKeyboard.nextDouble();
marksTable[studentNo][moduleNo] = mark;
}
}
} //end main
} //end class'
我似乎没有40名不同的学生在排边 和 八个标记位于列侧。
我在这个节目中没有做什么?
答案 0 :(得分:1)
由于数组索引从零开始,而不是一个,因此您需要执行以下两项操作之一:
marksTable[studentNo-1][moduleNo-1]
。第一种方法更常见:
for(int studentNo = 0 ; studentNo < marksTable.length ; studentNo++) {
System.out.print("Enter marks for student no " +(studentNo+1));
for (int moduleNo = 0 ; moduleNo < marksTable[studentNo].length ; moduleNo++) {
System.out.print("Mark for student "+(studentNo+1)+" for module no "+(moduleNo+1+":");
...
}
}