2D阵列:为40名不同学生阅读八个标记的程序

时间:2015-05-25 10:44:24

标签: java

  

该课程应为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名不同的学生在排边 和 八个标记位于列侧。

我在这个节目中没有做什么?

1 个答案:

答案 0 :(得分:1)

由于数组索引从零开始,而不是一个,因此您需要执行以下两项操作之一:

  • 将循环更改为0到39(含)和0到7(含),打印循环索引加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+":");
          ...
      }
}