2.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。 ① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。 ② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。
时间: 2024-03-30 20:33:40 浏览: 512
好的,我理解了你的问题。以下是if语句和switch语句实现该程序的代码,以及能正确处理任何数据的代码。
if语句实现:
```
#include <stdio.h>
int main()
{
int score;
printf("请输入学生的考试成绩:");
scanf("%d", &score);
if (score >= 0 && score <= 100)
{
if (score >= 90)
{
printf("该学生的等级为A\n");
}
else if (score >= 80)
{
printf("该学生的等级为B\n");
}
else if (score >= 70)
{
printf("该学生的等级为C\n");
}
else if (score >= 60)
{
printf("该学生的等级为D\n");
}
else
{
printf("该学生的等级为E\n");
}
}
else if (score < 0)
{
printf("输入数据错误!\n");
}
else
{
printf("输入数据错误!\n");
}
return 0;
}
```
switch语句实现:
```
#include <stdio.h>
int main()
{
int score;
printf("请输入学生的考试成绩:");
scanf("%d", &score);
if (score >= 0 && score <= 100)
{
switch (score / 10)
{
case 10:
case 9:
printf("该学生的等级为A\n");
break;
case 8:
printf("该学生的等级为B\n");
break;
case 7:
printf("该学生的等级为C\n");
break;
case 6:
printf("该学生的等级为D\n");
break;
default:
printf("该学生的等级为E\n");
break;
}
}
else if (score < 0)
{
printf("输入数据错误!\n");
}
else
{
printf("输入数据错误!\n");
}
return 0;
}
```
能正确处理任何数据的代码:
```
#include <stdio.h>
int main()
{
int score;
printf("请输入学生的考试成绩:");
while (scanf("%d", &score) == 1)
{
if (score >= 0 && score <= 100)
{
switch (score / 10)
{
case 10:
case 9:
printf("该学生的等级为A\n");
break;
case 8:
printf("该学生的等级为B\n");
break;
case 7:
printf("该学生的等级为C\n");
break;
case 6:
printf("该学生的等级为D\n");
break;
default:
printf("该学生的等级为E\n");
break;
}
}
else if (score < 0)
{
printf("输入数据错误!\n");
break;
}
else
{
printf("输入数据错误!\n");
}
printf("请输入学生的考试成绩:");
}
printf("程序结束!\n");
return 0;
}
```
希望这些代码能够帮助你解决问题。如果你还有其他问题,请随时问我。
阅读全文