酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Shell 脚本:轻松计算 score.txt 中各班级学生人数与平均分

以下是一个简单的Shell脚本,用于计算每个班级的学生人数和平均分。假设`score.txt`文件的格式如下: ``` 班级1 学生1 85 班级1 学生2 90 班级2 学生3 78 班级2 学生4 88 班级3 学生5 92 班级3 学生6 85 ``` 脚本内容如下: ```bash #!/bin/bash # 初始化一个关联数组来存储每个班级的总分和学生人数 declare -A class_total declare -A class_count # 读取score.txt文件 while read -r class student score; do # 累加每个班级的总分 class_total[$class]=$((class_total[$class] + score)) # 累加每个班级的学生人数 class_count[$class]=$((class_count[$class] + 1)) done < score.txt # 输出每个班级的学生人数和平均分 for class in "${!class_total[@]}"; do total=${class_total[$class]} count=${class_count[$class]} average=$((total / count)) echo "班级 $class 的学生人数: $count, 平均分: $average" done ``` 代码解释: 1. `declare -A class_total` 和 `declare -A class_count`:声明两个关联数组,用于存储每个班级的总分和学生人数。 2. `while read -r class student score; do`:逐行读取`score.txt`文件,并将每行的班级、学生和成绩分别赋值给变量`class`、`student`和`score`。 3. `class_total[$class]=$((class_total[$class] + score))`:累加每个班级的总分。 4. `class_count[$class]=$((class_count[$class] + 1))`:累加每个班级的学生人数。 5. `for class in "${!class_total[@]}"; do`:遍历所有班级,计算并输出每个班级的学生人数和平均分。 额外需要注意的逻辑点: 1. 确保`score.txt`文件的格式正确,每行包含班级、学生和成绩三个字段。 2. 如果某个班级没有学生,脚本不会输出该班级的信息。 3. 如果成绩不是整数,脚本可能会出错,需要确保成绩是整数。 ######[AI写代码神器 | 493点数解答 | 2025-03-01 18:04:23]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]