Java 我没有得到正确的结果,不确定我遗漏了什么(不正确的逻辑,遗漏了步骤?)
我正试图让这个问题正常工作,它要求输入一些分数,然后它应该显示得分最高的人的名字。我把最后一个分数作为最高分数输入,问题是最后一个分数不一定是最高分数。任何关于我如何解决这个问题的想法都将不胜感激。这是家庭作业,所以没有人说“使用列表或数组”,我们在课堂上没有涉及到这一点,因此不应该用它来解决这个问题Java 我没有得到正确的结果,不确定我遗漏了什么(不正确的逻辑,遗漏了步骤?),java,Java,我正试图让这个问题正常工作,它要求输入一些分数,然后它应该显示得分最高的人的名字。我把最后一个分数作为最高分数输入,问题是最后一个分数不一定是最高分数。任何关于我如何解决这个问题的想法都将不胜感激。这是家庭作业,所以没有人说“使用列表或数组”,我们在课堂上没有涉及到这一点,因此不应该用它来解决这个问题 public static void main(String[] args) { // variables Scann
public static void main(String[] args)
{
// variables
Scanner input = new Scanner(System.in);
int count = 0;
int numStudents;
double grade = 0, highestGrade = 0;
String name = "", highName = "";
String numGrades =
JOptionPane.showInputDialog
("How many student grades are you entering: ");
numStudents = Integer.parseInt(numGrades);
//for(int count = 0; count < numStudents; count++)
while(count < numStudents)
{
// prompt for the user to enter grades
String inputName =
JOptionPane.showInputDialog("Enter a student name: ");
name = inputName;
//name = input.next(inputName);
String inputGrade =
JOptionPane.showInputDialog("What is that students grade: ");
grade = Double.parseDouble(inputGrade);
//grade = input.nextDouble();
count++;
//if(grade < highestGrade)
if(highestGrade > grade)
{
name = highName;
grade = highestGrade;
}
else
{
continue;
}
}
JOptionPane.showMessageDialog
(null, "The student with the highest score is " + name +
" with a grade of " + grade);
}
publicstaticvoidmain(字符串[]args)
{
//变数
扫描仪输入=新扫描仪(System.in);
整数计数=0;
国际学生;
双等级=0,最高等级=0;
字符串名称=”,highName=”;
串珠=
JOptionPane.showInputDialog
(“您要输入多少学生成绩:”);
numStudents=Integer.parseInt(numGrades);
//对于(int count=0;count等级)
{
name=highName;
等级=最高等级;
}
其他的
{
持续
}
}
JOptionPane.showMessageDialog
(空,“得分最高的学生为”+姓名+
“等级为”+级);
}
这是向后的:
if(highestGrade > grade)
应该是
if(highestGrade < grade)
编辑:这也是向后的
name = highName;
grade = highestGrade;
这是倒退的:
if(highestGrade > grade)
应该是
if(highestGrade < grade)
编辑:这也是向后的
name = highName;
grade = highestGrade;
因为你想找到最高的等级和名字,上面应该是相反的
if(grade > highestGrade )
{
highName = name;
highestGrade = grade;
}
另外,打印找到的值:
因为你想找到最高的等级和名字,上面应该是相反的
if(grade > highestGrade )
{
highName = name;
highestGrade = grade;
}
另外,打印找到的值:
如果这是家庭作业,我想你的教授会对OO方法感兴趣,因为你正在使用Java。为什么不把学生的名字和成绩写进一个班级,然后把它们存储在一个列表中呢。从那里,您可以遍历列表,查看哪个学生的分数最高。很快,您将使用0初始化
highestGrade
变量,并将其与即将到来的分数进行比较。你需要实现highestGrade
变量,因为你一直在寻找更高的分数。如果这是家庭作业,我想你的教授会对OO方法感兴趣,因为你正在使用Java。为什么不把学生的名字和成绩写进一个班级,然后把它们存储在一个列表中呢。从那里,您可以遍历列表,查看哪个学生的分数最高。很快,您将使用0初始化highestGrade
变量,并将其与即将到来的分数进行比较。您需要实现highestGrade
变量,以便不断查找更高的分数。并更改为JOptionPane.showMessageDialog(null,“分数最高的学生是“+name+”,分数为“+highestGrade”)+1.而且,当打印到控制台时,OP应打印highName和highestGrade@Juvanis&托德,谢谢。我没有注意到:)我编辑了它。谢谢,我想它就是这么简单。此外,我更喜欢使用列表,因为这样可以更容易地获得最高分数,或者任何我想要的分数,但是讲师希望在没有列表或数组的情况下完成,因为他还没有“教”我们这一点。再次感谢你的帮助!并更改为JOptionPane.showMessageDialog(null,“得分最高的学生是“+name+”,成绩为“+highestGrade”)+1.而且,当打印到控制台时,OP应打印highName和highestGrade@Juvanis&托德,谢谢。我没有注意到:)我编辑了它。谢谢,我想它就是这么简单。此外,我更喜欢使用列表,因为这样可以更容易地获得最高分数,或者任何我想要的分数,但是讲师希望在没有列表或数组的情况下完成,因为他还没有“教”我们这一点。再次感谢你的帮助!