你有没有机会帮我解决我发布的问题?这不是一个难以置信的难题。我只需要一个小调整。如果可以,请你帮助我。 我需要它将A,B,C,D和S'的学生数加起来,并将它们显示在println中。
/*
* Array program to determine grades
* Nick Thomas
* 12-8-2013
* JDK version 1.7.0_25
*/
import javax.swing.JOptionPane;
public class Grades {
public static void main(String[] args) {
int scores[] = {90,100,80,85,63,73,80,92,90};
int sum = 0;
int largest = scores[0];
int gradeA= scores[0];
int gradeB= scores[0];
int gradeC= scores[0];
int gradeD= scores[0];
int gradeF= scores[0];
int smallest = scores[0];
for (int i = 0; i < 9; i++) {
sum = sum + scores[i];
if (scores[ i ] > largest){
largest = scores[i];
}
if (scores[i] < smallest) {
smallest = scores[i];
if ((scores[i] >= 90)) {
scores[i]=gradeA;
} else {
if ((scores[i] <90)&(scores[i]>=80)) {
scores[i]=gradeB;
} else {
if ((scores[i]<80)&(scores[i]>=70)) {
scores[i]=gradeC;
} else {
if ((scores[i]<70)&(scores[i]>=60)) {
scores[i]=gradeD;
} else {
scores[i]=gradeF;
}}}}}}
JOptionPane.showMessageDialog(null, "The sum is " + sum
+ "\nThe Average is " + sum/9
+ "\nThe largest score is " + largest
+"\nThe smallest score is " + smallest
+"\nThe number of students with scores of 90-100 (A) is " + gradeA
+"\nThe number of students with scores of 80-89 (B) is " + gradeB
+"\nThe number of students with scores of 70-79 (C) is " + gradeC
+"\nThe number of students with scores of 60-69 (D) is " + gradeD
+"\nThe number of students with scores of 0-59 (F) is " + gradeF);
}}
答案 0 :(得分:1)
您正在尝试获得两个数字之间得分的学生人数,因此您需要的是计算有多少学生的成绩为A,B,C ...... 而不是做:
int gradeA= scores[0];
你应该这样做:
int gradeA = 0;
因为你想要计算有多少人获得这个等级。并为其他人这样做。然后,而不是:
if ((scores[i] >= 90))
scores[i]=gradeA;
你实际上应该增加获得这个等级的人数,你这样做:
if ((scores[i] >= 90))
gradeA++;
最后,每组的数量都是正确的。
答案 1 :(得分:0)
这就是你要找的东西。
public static void main(String[] args) {
int scores[] = { 90, 100, 80, 85, 63, 73, 80, 92, 90 };
int sum = 0;
int largest = scores[0];
int gradeA = scores[0];
int gradeB = scores[0];
int gradeC = scores[0];
int gradeD = scores[0];
int gradeF = scores[0];
int smallest = scores[0];
int counterA=0;
int counterB=0;
int counterC=0;
int counterD=0;
int counterF=0;
//Determine grade and update corresponding counter
for (int i = 0; i < 9; i++) {
if (scores[i] > 90) {
counterA++;
}else if ((scores[i] < 90) & (scores[i] >= 80)) {
counterB++;
}else if ((scores[i] < 80) & (scores[i] >= 70)) {
counterC++;
}else if ((scores[i] < 70) & (scores[i] >= 60)) {
counterD++;
}else{
counterF++;
}
}
for (int i = 0; i < 9; i++) {
sum = sum + scores[i];
if (scores[i] > largest) {
largest = scores[i];
}
if (scores[i] < smallest) {
smallest = scores[i];
if ((scores[i] >= 90)) {
scores[i] = gradeA;
} else {
if ((scores[i] < 90) & (scores[i] >= 80)) {
scores[i] = gradeB;
} else {
if ((scores[i] < 80) & (scores[i] >= 70)) {
scores[i] = gradeC;
} else {
if ((scores[i] < 70) & (scores[i] >= 60)) {
scores[i] = gradeD;
} else {
scores[i] = gradeF;
}
}
}
}
}
}
//Show new grade wise counter values
JOptionPane.showMessageDialog(null, "The sum is " + sum
+ "\nThe Average is " + sum / 9 + "\nThe largest score is "
+ largest + "\nThe smallest score is " + smallest
+ "\nThe number of students with scores of 90-100 (A) is "
+ counterA
+ "\nThe number of students with scores of 80-89 (B) is "
+ counterB
+ "\nThe number of students with scores of 70-79 (C) is "
+ counterC
+ "\nThe number of students with scores of 60-69 (D) is "
+ counterD
+ "\nThe number of students with scores of 0-59 (F) is "
+ counterF);
}