无名指的星光
2019-04-23 17:46
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
switch(score=score/10)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 10:
case 9:
printf("等级A");
break;
case 8:
printf("等级B");
score/=10;
break;//这里是不是缺点什么?
case 7:
case 6:
printf("等级C");
break; //这里是不是缺点什么?
default:
printf("等级D");
break;
}
return 0;
}
为什么要在case 8的循环下加入一个“score /= 10;”呢?如果不加这一条输出结果依然是“等级B”,加与不加的区别是什么呢?
case 8 那里 正确答案是没有score/=10的
讲问题:先判断是哪段case 然后printf 显示出来是等级B 然后8.7再除以10 结果是0.87 但是printf已经判断过了 所以输出结果依然是等级B。
如果这段switch之后再写一段判断 0.87会判断为等级D
C语言入门
926287 学习 · 20799 问题
相似问题