|
发表于 2025-3-13 21:59:35
|
显示全部楼层
本楼为最佳答案
本帖最后由 jackz007 于 2025-3-13 22:40 编辑
【关键】:switch(v) ... case 分支中 case 后面必须是一个立即数(或者,在编译时就已经能够确定数值的表达式,其中不可以含有变量),不可以是逻辑表达式。
- #include <stdio.h>
- int main(void)
- {
- int fenshu ;
- scanf("%d" , & fenshu) ;
- switch(fenshu / 10)
- {
- case 10 : switch(fenshu % 10)
- {
- case 0 : printf("grade = A\n") ; break ;
- default : printf("invalid fenshu %d\n" , fenshu) ; break ;
- }
- break ;
- case 9 : printf("grade = A\n") ; break ; // case 后面必须是常数
- case 8 : printf("grade = B\n") ; break ; // case 后面必须是常数
- case 7 : printf("grade = C\n") ; break ; // case 后面必须是常数
- case 6 : printf("grade = D\n") ; break ; // case 后面必须是常数
- case 5 :
- case 4 :
- case 3 :
- case 2 :
- case 1 :
- case 0 : printf("grade = E\n") ; break ; // case 后面必须是常数
- default : printf("invalid fenshu %d\n" , fenshu) ;
- }
- return 0 ;
- }
复制代码 |
|