试编写一个程序,该程序实现输入一个 0~100 之间的数,输出五个不同的等级,其中0~59 表示“bad”;60~69 表示“average:70~79表示“good ”: 80~89 表示“better;90~100 表示“excellent”。(用shell脚本编写
时间: 2024-05-25 19:11:42 浏览: 24
#!/bin/bash
echo "Please enter a number between 0 and 100:"
read num
if [ $num -ge 0 ] && [ $num -lt 60 ]; then
echo "bad"
elif [ $num -ge 60 ] && [ $num -lt 70 ]; then
echo "average"
elif [ $num -ge 70 ] && [ $num -lt 80 ]; then
echo "good"
elif [ $num -ge 80 ] && [ $num -lt 90 ]; then
echo "better"
elif [ $num -ge 90 ] && [ $num -le 100 ]; then
echo "excellent"
else
echo "Invalid input, please enter a number between 0 and 100."
fi
# 使用方法:
# 1. 将脚本保存为 grade.sh
# 2. 打开终端,进入脚本所在的目录
# 3. 运行命令:chmod +x grade.sh,给脚本添加执行权限
# 4. 运行命令:./grade.sh,按照提示输入一个数字,即可得出等级。
相关问题
c语言按等级统计学生成绩:首先输入要统计的学生人数n,之后输入n个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记录包括学号、姓名、成绩和等级,要求定义和调用函数set_grade(),根据学生成绩设置其等级,并统计不及格人数,等级设置:85~100为A,70~84为B,60~69为C,0~59为D。试编写相应程序。
以下是使用C语言编写的按等级统计学生成绩的程序:
```c
#include <stdio.h>
#define MAX_N 100
struct student {
char id[20];
char name[20];
int score;
char grade;
};
void set_grade(struct student *s, int n, int *fail_num) {
for (int i = 0; i < n; i++) {
if (s[i].score >= 85 && s[i].score <= 100) {
s[i].grade = 'A';
} else if (s[i].score >= 70 && s[i].score <= 84) {
s[i].grade = 'B';
} else if (s[i].score >= 60 && s[i].score <= 69) {
s[i].grade = 'C';
} else {
s[i].grade = 'D';
(*fail_num)++;
}
}
}
int main() {
int n;
struct student stu[MAX_N];
int fail_num = 0;
printf("请输入要统计的学生人数:");
scanf("%d", &n);
printf("请输入学生信息:\n");
for (int i = 0; i < n; i++) {
printf("第%d个学生:\n", i + 1);
printf("学号:");
scanf("%s", stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("成绩:");
scanf("%d", &stu[i].score);
}
set_grade(stu, n, &fail_num);
printf("\n学生信息如下:\n");
printf("学号\t姓名\t成绩\t等级\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%d\t%c\n", stu[i].id, stu[i].name, stu[i].score, stu[i].grade);
}
printf("\n不及格人数:%d\n", fail_num);
return 0;
}
```
程序中定义了一个结构体 `student` 表示学生,其中包含学号、姓名、成绩和等级四个属性。`set_grade()` 函数用于根据学生成绩设置其等级,并统计不及格人数。主函数中先输入要统计的学生人数,再输入每个学生的学号、姓名和成绩,最后调用 `set_grade()` 函数设置等级和统计不及格人数,最终输出学生信息和不及格人数。
注意,在 `set_grade()` 函数中,为了方便统计不及格人数,使用了一个指向 `fail_num` 的指针,该指针指向不及格人数变量的地址,通过 `*fail_num` 来修改不及格人数的值。
编程:给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。 90分以上为A,81~89分为B,70~79分为C,60~69 分为D,60 分以下为E。 ①提前编好程序,要求分别用 if 语句和 switch语句实现。运行程序,并检查结果是否正确。 ②运行程序,试着输入一个负值分数,显然输入时的分数与我们要求的等级不罚不应给出等级。因此,我们可以这样修改程序,为了能正确处理任何数器,当输入数据大于100或小于0时,通知用户“输入数据错误”,然后程序结束。
好的,以下是 if 语句和 switch 语句实现的代码:
**if 语句实现:**
```python
score = float(input("请输入成绩:"))
if score < 0 or score > 100:
print("输入数据错误")
elif score >= 90:
print("成绩等级为:A")
elif score >= 81:
print("成绩等级为:B")
elif score >= 70:
print("成绩等级为:C")
elif score >= 60:
print("成绩等级为:D")
else:
print("成绩等级为:E")
```
**switch 语句实现:**
```python
score = float(input("请输入成绩:"))
if score < 0 or score > 100:
print("输入数据错误")
else:
level = ""
if score >= 90:
level = "A"
elif score >= 81:
level = "B"
elif score >= 70:
level = "C"
elif score >= 60:
level = "D"
else:
level = "E"
print("成绩等级为:", level)
```
对于输入负值分数或超出范围的分数,可以在输入分数后加上判断语句进行处理,如下所示:
```python
score = float(input("请输入成绩:"))
if score < 0 or score > 100:
print("输入数据错误")
else:
level = ""
if score >= 90:
level = "A"
elif score >= 81:
level = "B"
elif score >= 70:
level = "C"
elif score >= 60:
level = "D"
else:
level = "E"
print("成绩等级为:", level)
```
这样,当输入分数小于0或大于100时,就会输出“输入数据错误”,程序结束。