C语言中从键盘输入一个学生成绩,如何用switch输出成绩和档次?

如题所述

第1个回答  2022-11-16
switch里有三种写法,第一种就是每个单独写出来如:(这种如果数据多的话不推荐,比如这题)\x0d\x0aswitch(score) {\x0d\x0a case 90: case 91://...case 100:\x0d\x0a //优秀。。\x0d\x0a break;\x0d\x0a case 80:case 81:case 82: //...case 89:\x0d\x0a //中等。。\x0d\x0a break;\x0d\x0a}\x0d\x0a第二种就是进行缩小范围,如:(这种如果数据分布很有规律就用,比如这题)\x0d\x0aswitch(score/10) {\x0d\x0a case 10: case 9: //优秀..\x0d\x0a break;\x0d\x0a case 8: //中等\x0d\x0a break;\x0d\x0a}\x0d\x0a第三种是函数的写法,这适用于数据分布无规律而不能进行缩小范围时,假如90~96为优秀,97~100为特优秀的话,可以这样,如:(这种适用于数据分布无规律)\x0d\x0aint score_fun(int score)\x0d\x0a{\x0d\x0a if(score >= 97)\x0d\x0a return 1;\x0d\x0a if(score >= 90)\x0d\x0a return 2;\x0d\x0a if(score >= 80)\x0d\x0a return 3;\x0d\x0a}\x0d\x0a \x0d\x0a//....\x0d\x0a \x0d\x0aswitch(score_fun(score)) {\x0d\x0a case 1: //特优秀。。\x0d\x0a break;\x0d\x0a case 2: //优秀。。\x0d\x0a break;\x0d\x0a case 3: //中等。。\x0d\x0a break;\x0d\x0a}