#include
int main()
{
int score,t=0;
printf("input score:\n");
scanf("%d",&score);
if(score>100 || score<0){
printf("error");
}
t=score/10;
switch(t)
{
case 10:
case 9:printf("A");break;
case 8:printf("B");break;
case 7:printf("C");break;
case 6:printf("D");break;
default:printf("E");break;
}
return 0;
}
程序编译有问题吗?还是有什么其他的更改需求?
switch(整型变量或字符型变量)
{
case 常量1:语句1;break;
case 常量2:语句2;break;
case 常量3:语句3;break;
case 常量n:语句n;break;
default:语句n+1;break;
}
switch语句指令的意思是switch()括号里面的变量如果是常量1 ,就执行语句1,如果是常量2,就执行语句2,如果都不是就执行最后那一行的语句。
例 1:某课成绩原为 A、B、C、D 四个等级,现要将其转成百分制分数段,规则是:A 等转成 85~100,B 等转成 70~84,C 等转成60~69,D 等转成<60。请编一程序,成绩等级由键盘输入,输出分数段。
#include<stdio.h>
int main()
{
char dengji;
scanf(“%c”,&dengji);
switch(dengji)
{
case ‘A’:printf(“该生分数为 85~100\n”);break;
case ‘B’:printf(“该生分数为 70~84\n”);break;
case ‘C’:printf(“该生分数为 60~69\n”);break;
case ‘D’:printf(“该生分数为<60\n”);break;
default:printf(“该生的等级输得不对!\n”);break;
}
return 0;
}
例 2:某课成绩原为 A、B、C、D 四个等级,现要将其转成百分制分数段,规则是:A 等、B 等转成 70~100,C 等、D 等转成<70。请编一程序,成绩等级由键盘输入,输出分数段。
#include<stdio.h>
int main()
{
char dengji;
scanf(“%c”,&dengji);
switch(dengji)
{
case ‘A’:
case ‘B’:printf(“该生分数为 70~100\n”);break;
case ‘C’:
case ‘D’:printf(“该生分数为<70\n”);break;
default:printf(“该生的等级输得不对!\n”);break;
}
return 0;
}
#上下结果一样的时候,上面的可以不写省略,比如成绩为A或者是B 的时候输出的语句是一样的,所以可以省略A的不写。
例 3:某课成绩原为百分制,现要将其转成等级,规则是:90 分以上为 A、80~89 分为 B、70~79 分为 C、60~69 分为 D、60 分以下为 E。请编一程序,分数由键盘输入,输出等级。
#include<stdio.h>
int main()
{
double fenshu;
printf(“请输入分数:”);
scanf(“%lf”,&fenshu);
switch((int)(fenshu/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;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf(“该生等级为 E\n”);break;
default:printf(“你特么输的是成绩?!\n”);break;
}
return 0;
}