gpt4 book ai didi

Java作业与扫描仪输入的问题

转载 作者:行者123 更新时间:2023-12-01 09:28:48 25 4
gpt4 key购买 nike

这是教授的提示:编写一个名为 Find2Max 的公共(public)类,其中包含一个名为 run with 的方法以下 header :

公共(public)无效运行()

方法 run 可以解决以下问题:

  1. 提示用户输入学生人数

  2. 提示用户输入每个学生的姓名和分数

  3. 读取完所有学生的数据后,显示两名学生得分最高。

(请注意,如果学生人数少于 2 人,则该程序仍然读两个学生)

这是我的代码:

import java.util.Scanner;

public class Find2Max {

public void run() {

Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of at least 2 students: ");
int number_of_students = sc.nextInt();

if(number_of_students < 2){
number_of_students = 2;
}

do{

double top_grade = 0;
double second_top_grade = 0;
String top_kid = "";
String second_top_kid= "";

for(int ii = 0; ii < number_of_students; ii++){
System.out.print("Enter a student name: ");
String student_name = sc.nextLine();

System.out.print("Enter a student score: ");
Double student_grade = sc.nextDouble();

if(student_grade > top_grade){
top_kid = student_name;
top_grade = student_grade;
}
else if(student_grade > second_top_grade && student_grade < top_grade){
second_top_grade = student_grade;
second_top_kid = student_name;
}
else{
student_grade = 0.00;
student_name ="";
}
}
System.out.println("Top two students: ");
System.out.println( top_kid + "'s score is " + top_grade);
System.out.println(second_top_kid + "'s score is " + second_top_grade);
}while(number_of_students >= 2);
}

public static void main(String[] args){
Find2Max test = new Find2Max();
test.run();
}
}

我努力解决这个问题,我真的很接近,但很困惑为什么我的程序似乎跳过并且不读取我输入的“输入学生姓名”部分的输入。当学生人数为 1 时似乎也存在此问题。任何帮助将不胜感激! :]

最佳答案

您需要使用Scanner.next();而不是 Scanner.nextLine(); 因为 nextLine 方法 skips the current line .

关于Java作业与扫描仪输入的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39628507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com