gpt4 book ai didi

java - 正确格式化我的输出

转载 作者:行者123 更新时间:2023-12-02 03:39:04 24 4
gpt4 key购买 nike

我正在尝试让我的代码显示教师类(class)的最高分、最低分和平均分。

我希望它像这样显示:

最高分:94.7, jack

最低分数:80.2,艾米丽

平均分:85.6

最高等级和平均等级有效,但最低等级无效。这是我到目前为止所拥有的:

import java.util.*;

public class Grades {
public static void main(String[] args) {
ArrayList<Integer> bestStudentPosition = new ArrayList<Integer>();
ArrayList<Integer> worstStudentPosition = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
System.out.print("How many students are in your class? ");
int totalStudents = Integer.parseInt(input.nextLine());
String[] names = new String[totalStudents];
double[] scores = new double[totalStudents];
double maxGrade = 0;
double minGrade = scores[0];
double avg = 0;
double sum = 0;
for(int i = 0; i < totalStudents; i++){
System.out.print("Name: ");
names[i] = input.next();
System.out.print("Score: ");
scores[i] = input.nextDouble();
sum += scores[i];

if (scores[i] > maxGrade) {
bestStudentPosition.clear();
maxGrade = scores[i];
bestStudentPosition.add(new Integer(i));
}
else if (scores[i] == maxGrade) {
bestStudentPosition.add(new Integer(i));
}
if (scores[i] < minGrade) {
worstStudentPosition.clear();
minGrade = scores[i];
worstStudentPosition.add(new Integer(i));
}
else if (scores[i] == minGrade) {
worstStudentPosition.add(new Integer(i));
}

}

avg = sum/totalStudents;
System.out.print("Highest score: ");
for (Integer position : bestStudentPosition) {
System.out.println(maxGrade + ", " + names[position]);
}
System.out.print("Lowest score: ");
for (Integer position : worstStudentPosition) {
System.out.println(minGrade + ", " + names[position]);
}

System.out.printf("Average: %3.2f", avg);

}
}

如有任何帮助,我们将不胜感激。

最佳答案

scores[i] < minGrade

其中 minGrade 最初为 0,并且您永远不会为其分配除 0 之外的任何值。此外,只有在成绩小于 0 时,这才有效。

所以,可能你需要做的是,

import java.util.ArrayList;
import java.util.Scanner;

public class Grades {
public static void main (String[] args) {
ArrayList<Integer> bestStudentPosition = new ArrayList<Integer>();
ArrayList<Integer> worstStudentPosition = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
System.out.print("How many students are in your class? ");
int totalStudents = Integer.parseInt(input.nextLine());
String[] names = new String[totalStudents];
double[] scores = new double[totalStudents];
double maxGrade = 0;
double minGrade = 0;
double avg = 0;
double sum = 0;
for (int i = 0; i < totalStudents; i++) {
System.out.print("Name: ");
names[i] = input.next();
System.out.print("Score: ");
scores[i] = input.nextDouble();
sum += scores[i];
if (i == 0) {
minGrade = scores[0];
}
if (scores[i] > maxGrade) {
bestStudentPosition.clear();
maxGrade = scores[i];
bestStudentPosition.add(new Integer(i));
} else if (scores[i] == maxGrade) {
bestStudentPosition.add(new Integer(i));
}
if (i > 0 && scores[i] < minGrade) {
worstStudentPosition.clear();
minGrade = scores[i];
worstStudentPosition.add(new Integer(i));
} else if (scores[i] == minGrade) {
worstStudentPosition.add(new Integer(i));
}

}

avg = sum / totalStudents;
System.out.print("Highest score: ");
for (Integer position : bestStudentPosition) {
System.out.println(maxGrade + ", " + names[position]);
}
System.out.print("Lowest score: ");
for (Integer position : worstStudentPosition) {
System.out.println(minGrade + ", " + names[position]);
}

System.out.printf("Average: %3.2f", avg);

}
}

在这些条件之前为 minGrade 分配初始值 scores[0]。例如

minGrade = 分数[0];

这是输出:

How many students are in your class? 3

Name: Harry

Score: 90.2

Name: Laurent

Score: 99.99

Name: Darren

Score: 98.9

Highest score: 99.99, Laurent

Lowest score: 90.2, Harry

Average: 96.36

关于java - 正确格式化我的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060320/

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