Shell脚本:统计pc.txt中学生数学成绩各分数段人数及总平均分
以下是一个解决此问题的 Shell 脚本示例: ```bash #!/bin/bash # 初始化各分数段的人数 A_count=0 B_count=0 C_count=0 D_count=0 E_count=0 # 初始化总分 total_score=0 # 初始化学生数量 student_count=0 # 读取文件 while read line; do # 提取学号和成绩 student_id=$(echo "$line" | awk '{print $1}') score=$(echo "$line" | awk '{print $2}') # 增加学生数量 student_count=$((student_count + 1)) # 统计各分数段人数 if [ $score -ge 90 ]; then A_count=$((A_count + 1)) elif [ $score -ge 80 ] && [ $score -lt 90 ]; then B_count=$((B_count + 1)) elif [ $score -ge 70 ] && [ $score -lt 80 ]; then C_count=$((C_count + 1)) elif [ $score -ge 60 ] && [ $score -lt 70 ]; then D_count=$((D_count + 1)) else E_count=$((E_count + 1)) fi # 累加总分 total_score=$((total_score + score)) done < pc.txt # 计算平均分 average_score=$((total_score / student_count)) # 输出结果 echo "A 档(90 - 100)人数:$A_count" echo "B 档(80 - 89)人数:$B_count" echo "C 档(70 - 79)人数:$C_count" echo "D 档(60 - 69)人数:$D_count" echo "E 档(不及格)人数:$E_count" echo "总平均分:$average_score" # 额外注意的逻辑点: # 1. 确保文件 pc.txt 的格式正确,每行都是 S* 和数字的组合。 # 2. 如果文件中的成绩不是整数,可能需要额外的处理来进行正确的判断和计算。 # 3. 考虑对输入数据进行错误检查,例如处理空行或格式不正确的行。 ``` ######[AI写代码神器 | 534点数解答 | 2025-04-04 15:50:44]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)424
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)369
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)365
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)360
- 测3:以读、二进制方式打开C盘temp文件夹下abc.txt文件的代码选哪个?(GPT | 15点数解答 | 2024-06-06 13:53:37)413
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)235
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)79
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)82
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)75
- Linux 知识问答:判断文件 test.txt 是否存在的正确命令揭晓!(字节豆包 | 62点数解答 | 2024-11-22 17:14:08)300
- 优化代码:安全高效解锁设备 Bootloader 与刷入 Recovery 镜像(DeepSeek | 345点数解答 | 2025-02-21 22:47:48)183
- Python 实现 DES 加密算法编程实验:从原理到单步调试全解析(字节豆包 | 4096点数解答 | 2025-11-09 22:06:30)87