图一是要求 图二三是我写的123456789-/:;.@“凑字数.请忽略
这样考虑 用switch语句时
key值写成每个分数除以10
得到结果是不是就 缩小范围了呢 是吧
#include <stdio.h>
void judgeLevel(float x)
{
switch((int)x/10)
{
case 0 :
case 1 :
case 2 :
case 3 :
case 4 :
case 5 : printf("等级不及格\n");break;
case 6 :
case 7 :
case 8 : printf("等级中等\n");break;
case 9 :
case 10: printf("等级优秀\n");break;
default: printf("输入有误");break;
}
}
int main()
{
float a,b,c;
printf("请输入某同学的三科分数:");
scanf("%f%f%f",&a,&b,&c);
printf("科目一%.2f分",a);
judgeLevel(a);
printf("科目二%.2f分",b);
judgeLevel(b);
printf("科目三%.2f分",c);
judgeLevel(c);
return 0;
}
运行截图
控制台输入3个成绩,然后用 if 语句判断就好了
你的printf里至少要有2个参数,一个分数,一个你通过判断获得的字符串,你这里为什么只有一个分数?grade呢,算了半天给直接丢弃了?
再说了,你有3个分数,就要对应3个grade,怎么全赋值给同一个变量了,那还能区分出来吗
要么你每计算出一个grade就直接输出一个grade,不要等到最后再输出,那不全覆盖了吗