我写了一个程序,提示用户输入学生的姓名和分数。最后显示得分最高的学生。
这是我的代码,我应该怎么做。
public class Student {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int numberOfStudent = 10;
int count = 0;
int highestScore = 0;
String highestScorer = "";
String x= "";
int y;
while (count < numberOfStudent) {
System.out.println("Enter student's name and score.");
x = input.next();
y = input.nextInt();
count++;
if (highestScore < y){
highestScore = y;
highestScorer = x;
}
}
System.out.println(highestScore +" "+ highestScorer);
}
}
答案 0 :(得分:3)
嗯,最后,你的x
包含最后一个学生,而不是得分最高的学生。
就像保留highestScore
变量一样,您应该保留highestScoreUser
变量。每当您更新highestScore
时,您都应该更新highestScoreUser
。
if (highestScore < y){
highestScore = y;
highestScoreUser = x;
}
答案 1 :(得分:2)
您还可以使用Math.max (highestScore, y)
来保留所需的最大值,而不是使用if