题目要求
定义一个方法 analyzeScores(int[] scores),接收一个存储学生成绩的整型数组。
在方法内部完成以下统计:
-
计算平均分(保留 1 位小数)
-
找出最高分和最低分
-
统计及格(≥60 分)和不及格(<60 分)的人数
在 main 方法中定义一个成绩数组(例如:{85, 92, 58, 77, 63, 45, 98, 70}),调用该方法并输出所有统计结果。
要求使用循环结构遍历数组,使用分支结构判断成绩是否及格。
思路分析:
1.首先,方法需要接收数据处理,所以需要一个参数,用来表示需要统计的成绩数组 int[ ] score。
2.其次,统计结果只需要在控制台输出,不需要返回值,所以返回值类型为void。
3.最后,考虑方法内部的业务逻辑:
-
先按照方法接收的成绩数组,初始化统计变量:sum、max、min、pass、fail
-
遍历数组中的每一个成绩,用if分支结构判断
-
计算平均数,使用强制类型转换
-
输出所有统计结果
代码:
public class AnalyzeScore1 {
public static void main(String[] args) {
//1.定义一个成绩数组
int[] score = {85, 92, 58, 77, 63, 45, 98, 70};
//调用方法
analyzeScores(score);
}
private static void analyzeScores(int[] score) {
int sum = 0;
int max = score[0];
int min = score[0];
int pass = 0;
int fail = 0;
//遍历出数组中的成绩
for (int i = 0; i < score.length; i++) {
sum += score[i];
if (score[i] >max){
max = score[i];
}
if (score[i] < min) {
min = score[i];
}
if (score[i] >= 60){
pass++;
} else {
fail++;
}
}
//强制类型转换
double avgScore = (double) sum / score.length;
//打印统计结果
System.out.println("===== 成绩统计结果 =====");
System.out.println("平均分是:" + avgScore);
System.out.println("最高分是:" + max);
System.out.println("最低分是:" + min);
System.out.println("及格人数是:" + pass);
System.out.println("不及格人数是:" + fail);
}
}




