请按以下方式比较学生成绩:学生编号: 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].length
或j <= 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]