【发布时间】:2020-06-14 21:10:39
【问题描述】:
我可以在作业中使用一些帮助。用户必须输入学生人数,然后输入分数,我必须找到最好的分数并相应地分配分数。
如果分数 >= best-10,则成绩为 A
如果分数 >= best-20,则等级为 B
如果分数 >= best-30,则成绩为 C
如果分数 >= best-40,则等级为 D
否则等级为F
我的程序目前没有产生正确的成绩,我尝试在 if 之前放置另一个 for 循环,但没有任何改变,然后我尝试使用另一个变量(j 而不是 i),但我有点卡住了。我是java新手,所以任何帮助都将不胜感激,并提前谢谢你:)
下面是输入输出的例子:
输入学生人数:4
输入 4 个分数:45 90 78 23
学生 0 年级是:A
学生 1 年级是:A
学生 2 年级是:A
学生3年级是:C
很难判断是否确定了最好的分数,因为它给其他数字提供相同的分数,这会在许多其他数字作为输入时发生。
``````````````````````````````````````````````
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of students: ");
int students = input.nextInt();
int[] grades = new int [students];
System.out.print("Enter " + students + " scores: ");
for(int i=0; i<students; i++){
grades[i] = input.nextInt();
}
int max = grades[0];
for(int i = 0; i<grades.length; i++){
if(grades[i] > max){
max = grades[i];
}
for(i = 0; i<grades.length; i++){
if (grades [i] >= max-10){
System.out.println("Student " + i + " score is: A");
}else if (grades[i] >= max-20){
System.out.println("Student " + i + " grade is: B");
}else if (grades [i] >= max-30){
System.out.println("Student " + i + " grade is: C");
}else if (grades[i] >= max-40){
System.out.println("Student " + i + " grade is: D");
}else{
System.out.println("Student " + i + " grade is: F");
}
}
}
}
}
`````````````````````````````````````````
【问题讨论】:
-
“我的程序没有产生正确的成绩”到底是怎么回事?你用了什么输入法?你得到了什么输出?你期望的输出是什么?
-
是否至少正确确定了最大值?
-
是否至少采用了正确数量的输入?正确存储?有可能被列回输出吗?
-
所有这些都被认为是基本调试?您还尝试了哪些发现问题的方法?
-
@Yunnosch 我输入了很多分数,但没有一个是正确的。
标签: java arrays loops if-statement