|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
想问下 case后面的常量表达式有什么要求吗,比如下面这种ABCD为什么要加单引号,后面是数字就不用加,能解释下原因吗,数字加了单引号就错误,字母不加也会错误
- #include <stdio.h>
- void main ()
- {
- char grade;
- printf("grade=");
- scanf("%c",&grade);
- switch(grade)
- {
- case 'A':printf("85~100");break;
- case 'B':printf("70~84");break;
- case 'C':printf("60~69");break;
- case 'D':printf("<60");break;
- default : printf ("error \n");
- }
- }
复制代码- #include <stdio.h>
- void main ()
- {
- int year, month , day , sum ,leap;
- printf("please input year ,month , day \n");
- scanf("%d%d%d",&year,&month,&day);
- switch(month)
- {
- case 1:sum=0;break;
- case 2: sum=31;break;
- case 3: sum =59;break;
- case 4: sum =90;break;
- case 5 : sum =120;break;
- case 6: sum =151;break;
- case 7: sum =181;break;
- case 8: sum =212;break;
- case 9: sum =243;break;
- case 10: sum =273;break;
- case 11: sum=304;break;
- case 12: sum =334;break;
- default:printf("data error");break;
- }
- sum =sum+day;
- if((year%400==0)||(year%4==0&&year%100!=0))
- leap=1;
- else
- leap=0;
- if (leap==1&&month>2)
- sum++;
- printf("%d",sum);
- }
复制代码
case后面只能是整型或字符型的常量或常量表达式
至于为什么,就好像为啥红灯停绿灯行,这个有些就是这么规定的
|
|