gpt4 book ai didi

Java - 如何在我的程序中为我的每个成绩显示一个字母等级,而不仅仅是我的最后一个?

转载 作者:行者123 更新时间:2023-11-30 12:02:30 25 4
gpt4 key购买 nike

在我的大学作业中,我必须提示成绩并获得用户输入 6 次,然后显示每个分数,旁边有字母成绩,然后显示平均值。我终于能够让每个标记都正确显示,但是最后一个条目的字母等级显示在每个条目中。我需要在我的代码中更改什么才能使其正常工作?

我有一个返回字母成绩的方法,但该方法只部分起作用;就像它显示适当的字母等级一样,但仅适用于最后一个条目。

package com.company;

import java.util.Scanner; //Summons the Scanner class

public class Main { //Main class

//Instance variables to count and calculate the grades
public static double total;
public static int grade;
public static int entries = 0;

public static void main(String[] args) { //Main method

//Creates a scanner for user input
Scanner keyboard = new Scanner(System.in);
int[]grades = new int[7];

while (entries < 6) { //Make the user enter 6 grades
do {
System.out.printf("Enter grade %d: ", entries); //Prompt for a grade
grades[entries] = grade;
entries++;
grade = keyboard.nextInt(); //Get the user input
total = total + grade; //Add grade to total
} while (!wrongValue(grade)); //Call a method to prompt for a re-entry upon user error
}
grades[6]=grade;
double average = total / 6; //Get the total
System.out.printf("1st grade is %d which is %s%n%%", grades[1], letterGrade(grade));
System.out.printf("2nd grade is %d which is %s%n%%", grades[2], letterGrade(grade));
System.out.printf("3rd grade is %d which is %s%n%%", grades[3], letterGrade(grade));
System.out.printf("4th grade is %d which is %s%n%%", grades[4], letterGrade(grade));
System.out.printf("5th grade is %d which is %s%n%%", grades[5], letterGrade(grade));
System.out.printf("6th grade is %d which is %s%n%%", grades[6], letterGrade(grade));
System.out.printf("total average = %.1f%%", average);
}

public static String letterGrade (int grade)
{
if (grade >= 90 && grade <= 100)
return "an A+";
else if (grade >= 80 && grade <= 90)
return "an A";
else if (grade >= 75 && grade <= 80)
return "a B+";
else if (grade >= 70 && grade <= 75)
return "a B";
else if (grade >= 65 && grade <= 70)
return "a C+";
else if (grade >= 60 && grade <= 65)
return "a C";
else if (grade >= 55 && grade <= 60)
return "a D+";
else if (grade >= 50 && grade <= 55)
return "a D";
else
return "an F";
}
}

最佳答案

我怀疑您想要调用 letterGrade 以及您从用户处读取的每个 grade。但首先,数组从 0(而不是 1)开始。你的格式 String(s) 有奇怪的 %% literal(s) 会在下一行重新开始,我稍微清理了一下代码(我不是我喜欢无用的临时变量,也不喜欢无法阐明代码的注释)。喜欢,

public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int[] grades = new int[6];
int total = 0;
for (int i = 0; i < grades.length; i++) {
do {
System.out.printf("Enter grade %d: ", i + 1);
grades[i] = keyboard.nextInt();
} while (!wrongValue(grades[i]));
total += grades[i];
}
double average = total / 6.0;
System.out.printf("1st grade is %d which is %s%n", grades[0], letterGrade(grades[0]));
System.out.printf("2nd grade is %d which is %s%n", grades[1], letterGrade(grades[1]));
System.out.printf("3rd grade is %d which is %s%n", grades[2], letterGrade(grades[2]));
System.out.printf("4th grade is %d which is %s%n", grades[3], letterGrade(grades[3]));
System.out.printf("5th grade is %d which is %s%n", grades[4], letterGrade(grades[4]));
System.out.printf("6th grade is %d which is %s%n", grades[5], letterGrade(grades[5]));
System.out.printf("total average = %.1f which is %s%n", average,
letterGrade((int) average));
}

最后,根据您发布的逻辑,我假设当值有效时 wrongValue 实际上返回 true(因此方法名称似乎是向后的)。

关于Java - 如何在我的程序中为我的每个成绩显示一个字母等级,而不仅仅是我的最后一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58531929/

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