Java Two-Dim Array



请按以下方式比较学生成绩:学生编号: 25 31 6 78 42成绩: 78 85 63 59 99

设计一个程序,如果教师输入程序将输出的分数:(1)哪个学生人数高于分数(2)学生总数分数较高

例如输入:80,它将输出(1)学生编号31,42。(2) 共2名学生

我认为问题出在程序运行后的"for 循环"上。我输入了一个 80 分,它呈现"第 25 号总计 1,第 25 号总计 2,.......NO. 25 总计 8"似乎重复的情况,只抓住了第一项学生25号。

这是我的代码,请帮我更正,谢谢

public class TWOarray {
  public static void main(String[] args) {
    int[][] arr = new int[][] {
        {25, 31, 6, 78, 42},
        {78, 85, 63, 59, 99}
    };
    int count = 0;
    int yournum = 0;
    Scanner sc = new Scanner(System.in);
    System.out.println("ENTER score");
    yournum = sc.nextInt();
    for (int i = 0; i < arr.length;i++) {
      for (int j = 0; j < arr[i].length-1;j++) {
        if (yournum >= arr[0][j]) {
          count++;
        } else if (yournum < arr[0][j]) {
        }
        System.out.print("student NO:" + arr[i][0] + "total" + count + "students");
      }         
    }
  }
}

有菜鸟错误。

在下一行中

  for (int j = 0; j < arr[i].length-1;j++) {

您将永远不会检查行的最后一种情况,因为条件是 j < arr[i].length -1 ,迭代每个单元格是j < arr[i].lengthj <= arr[i].length -1

然后对于以下块

if (yournum >= arr[0][j]) {
      count++;
} else if (yournum < arr[0][j]) {
}
System.out.print("student NO:" + arr[i][0] + "total" + count + "students");

您始终使用表中的第一行。使用i,如arr[i][j]

最新更新