本帖最后由 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 ;
}
|