编写shell程序循环接收某门课程的成绩,计算用户已输入的最高分最低分平均分。按p输出计算结果,按q键退出
时间: 2024-05-06 20:14:50 浏览: 12
以下是一个实现该功能的示例shell脚本:
```shell
#!/bin/bash
# 初始化变量
max_score=-100
min_score=100
total_score=0
count=0
while true; do
# 提示用户输入成绩
read -p "请输入成绩(按q退出): " score
# 判断用户是否想要退出
if [ "$score" = "q" ]; then
echo "退出程序"
break
fi
# 判断用户输入是否为数字
if ! [[ "$score" =~ ^[0-9]+$ ]]; then
echo "输入不合法,请重新输入"
continue
fi
# 更新统计信息
if [ "$score" -gt "$max_score" ]; then
max_score=$score
fi
if [ "$score" -lt "$min_score" ]; then
min_score=$score
fi
total_score=$((total_score + score))
count=$((count + 1))
done
# 输出统计结果
if [ "$count" -eq 0 ]; then
echo "没有输入成绩"
else
avg_score=$((total_score / count))
echo "最高分: $max_score"
echo "最低分: $min_score"
echo "平均分: $avg_score"
fi
```
该脚本使用了一个while循环,不断接收用户输入的成绩。当用户输入q时,循环结束。每次用户输入成绩后,脚本会判断输入是否为数字,如果不是则提示用户重新输入。然后统计最高分、最低分、总分,并且计算平均分。最后根据用户输入的成绩数量输出统计结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)