Java 我怎样才能得到正确的平均分和分数?
这是我现在的代码:Java 我怎样才能得到正确的平均分和分数?,java,Java,这是我现在的代码: package lessons4; public class prog2 { public static void main(String args[]) { int row , col, total=0; int average; int[][] y = {{85,83,77,91,76}, {80,90,95,93,48}, {
package lessons4;
public class prog2 {
public static void main(String args[])
{
int row , col, total=0;
int average;
int[][] y = {{85,83,77,91,76},
{80,90,95,93,48},
{78,81,11,90,73},
{92,83,30,69,87},
{23,45,96,38,59},
{60,85,45,39,67},
{77,31,52,74,83},
{93,94,89,77,97},
{79,85,28,93,82},
{85,72,49,75,63}
};
String[] names = {"Johnson" , "Aniston" ,"Cooper", "Gupta", "Blair", "Clark", "Kennedy", "Bronson", "Sunny", "Smith"};
System.out.println("Name \tS1 \tS2 \tS3 \tS4 \tS5 \taverage \tgrade ");
for(row=0; row<=9; row++)
{
System.out.print(names[row] + "\t");
for(col=0; col<=4; col++)
{
System.out.print(y[row][col] + "\t");
total = total + y[row][col];
}
average = total/5;
System.out.println(+average);
}
}
}
如您所见,输出的平均值似乎不正确
第二,我该如何为每个学生分配分数,因为我真的很困惑我该怎么做。你在正确的轨道上需要做的就是将变量的类型从int和average从int改为double,因此,平均值不会四舍五入到最接近的整数,并将每个学生的合计值重置为0,因此计算的合计值和平均值是针对每个学生的 对于指定字母等级,您可以使用下面的getGrade之类的方法,根据需要进行修改:
class Prog2 {
public static void main(String args[]) {
int row, col = 0;
double average, total = 0;
int[][] y = {{85,83,77,91,76},
{80,90,95,93,48},
{78,81,11,90,73},
{92,83,30,69,87},
{23,45,96,38,59},
{60,85,45,39,67},
{77,31,52,74,83},
{93,94,89,77,97},
{79,85,28,93,82},
{85,72,49,75,63}
};
String[] names = {"Johnson" , "Aniston" ,"Cooper", "Gupta", "Blair", "Clark", "Kennedy", "Bronson", "Sunny", "Smith"};
System.out.println("Name \t\tS1 \tS2 \tS3 \tS4 \tS5 \tAverage \tGrade ");
for(row=0; row<=9; row++) {
System.out.print(names[row] + "\t\t");
total = 0;
for(col=0; col<=4; col++) {
System.out.print(y[row][col] + "\t");
total = total + y[row][col];
}
average = total/5;
System.out.println(average + "\t\t" + getGrade(average));
}
}
public static String getGrade(double average) {
if(average > 97) {
return "A+";
} else if (average > 93) {
return "A";
} else if (average > 90) {
return "A-";
} else if (average > 87) {
return "B+";
} else if (average > 83) {
return "B";
} else if (average > 80) {
return "B-";
} else if (average > 77) {
return "C+";
} else if (average > 73) {
return "C";
} else if (average > 70) {
return "C-";
} else if (average > 67) {
return "D+";
} else if (average > 63) {
return "D";
} else if (average > 60) {
return "D-";
} else {
return "F";
}
}
}
你不工作是什么意思?请查看并重试。你的问题一点也不清楚。请阅读。这里有一个语法错误System.out.println+average;。对+average的期望是什么?在内部循环之前缺少total=0。-如果您遵循了良好的编程风格,并在需要的地方声明了局部变量,而不是预先声明,那么这个问题就不会发生。对于int行=0;row@shash678是的,很抱歉我错过了!公共静态字符串getGradedouble平均值{ifaverage>=85&&=75&&&=65&&&=50&&我如何消除这样一个评分的语法错误?在每个if语句的&&之后添加平均值。如果平均值是84.5,那么上面发布的代码不会返回任何评分。你能看到为什么吗?在答案中尝试新的getGrade方法。同时阅读我的答案解释为什么&&部分是多余的。@a8rt请您点击我的答案确认正确,好吗?我会非常感激的。我正在努力争取5000分,泰。我无法将您的答案标记为正确,因为我的重复次数不足15次
class Prog2 {
public static void main(String args[]) {
int row, col = 0;
double average, total = 0;
int[][] y = {{85,83,77,91,76},
{80,90,95,93,48},
{78,81,11,90,73},
{92,83,30,69,87},
{23,45,96,38,59},
{60,85,45,39,67},
{77,31,52,74,83},
{93,94,89,77,97},
{79,85,28,93,82},
{85,72,49,75,63}
};
String[] names = {"Johnson" , "Aniston" ,"Cooper", "Gupta", "Blair", "Clark", "Kennedy", "Bronson", "Sunny", "Smith"};
System.out.println("Name \t\tS1 \tS2 \tS3 \tS4 \tS5 \tAverage \tGrade ");
for(row=0; row<=9; row++) {
System.out.print(names[row] + "\t\t");
total = 0;
for(col=0; col<=4; col++) {
System.out.print(y[row][col] + "\t");
total = total + y[row][col];
}
average = total/5;
System.out.println(average + "\t\t" + getGrade(average));
}
}
public static String getGrade(double average) {
if(average > 97) {
return "A+";
} else if (average > 93) {
return "A";
} else if (average > 90) {
return "A-";
} else if (average > 87) {
return "B+";
} else if (average > 83) {
return "B";
} else if (average > 80) {
return "B-";
} else if (average > 77) {
return "C+";
} else if (average > 73) {
return "C";
} else if (average > 70) {
return "C-";
} else if (average > 67) {
return "D+";
} else if (average > 63) {
return "D";
} else if (average > 60) {
return "D-";
} else {
return "F";
}
}
}
Name S1 S2 S3 S4 S5 Average Grade
Johnson 85 83 77 91 76 82.4 B-
Aniston 80 90 95 93 48 81.2 B-
Cooper 78 81 11 90 73 66.6 D
Gupta 92 83 30 69 87 72.2 C-
Blair 23 45 96 38 59 52.2 F
Clark 60 85 45 39 67 59.2 F
Kennedy 77 31 52 74 83 63.4 D
Bronson 93 94 89 77 97 90.0 B+
Sunny 79 85 28 93 82 73.4 C
Smith 85 72 49 75 63 68.8 D+