/ / Моят текущ код отпечатва, че последният студент, вписан с техния резултат, е най-високият, дори ако е по-нисък от процеса - java, затъмнение, най-висок, въведение

Моят текущ код отпечатва, че последният влязъл студент с резултата е най-висок, дори и да е по-нисък от процедурата - java, eclipse, highest, introduction

Моят текущ код отпечатва, че последният студент, вписан с техния резултат, е най-високият, дори ако е по-нисък от процеса. Имам нужда от него, за да отпечатам най-високото от всички включени студенти.

(Намерете двата най-високи резултата) Напишете програмакоето подканва потребителя да въведе броя на учениците и името и резултата на всеки ученик и накрая показва студента с най-висок резултат и ученика с втория най-висок резултат.

package chapter5;
import java.util.Scanner;

public class Number9 {
public static void main(String [] args){
Scanner input = new Scanner(System.in);



System.out.println("Enter number of students");
int numberOfStudents = input.nextInt();

System.out.println("Enter the name and score of each student:");
for (int i = 0; i < numberOfStudents; i++ ){
System.out.println("Student " + (i+1) + " name ");
String name = input.next();

System.out.println("Student " + (i+1) + " score ");
int score = input.nextInt();



int highestScore = 0;
String highestScoreName ="";

if (score > highestScore){
highestScore = score;
highestScoreName = name;

System.out.println("The student with the highest score is "
+ highestScoreName + " with a score of " + highestScore );

}
}


}
}

Отговори:

1 за отговор № 1

Проблемът ви е, че определяте максималната стойност в цикъла, така че при всяка итерация на цикъла той да се нулира

Опитайте това вместо това:

package chapter5;
import java.util.Scanner;

public class Number9 {
public static void main(String [] args){
Scanner input = new Scanner(System.in);

int highestScore = 0;
String highestScoreName ="";

System.out.println("Enter number of students");
int numberOfStudents = input.nextInt();

System.out.println("Enter the name and score of each student:");
for (int i = 0; i < numberOfStudents; i++ ){
System.out.println("Student " + (i+1) + " name ");
String name = input.next();

System.out.println("Student " + (i+1) + " score ");
int score = input.nextInt();

if (score > highestScore){
highestScore = score;
highestScoreName = name;
}
}
System.out.println("The student with the highest score is "
+ highestScoreName + " with a score of " + highestScore );

}
}

0 за отговор № 2

Декларирайте най-високите и най-високитеScoreName променливи преди цикъл for, като променливите вътре в цикъла с всяка итерация стойността му ще бъде нулирана.