急求帮忙(C语言的)

来源:百度知道 编辑:UC知道 时间:2024/06/14 09:39:19
程序如下:
#include <stdio.h>
void main()
{ int year,month,days;
scanf("%d,%d",&year,&month);
switch(month)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31;
break;
case 4:
case 6:
case 9:
case 11: days=30;
break;
case 2: if((year%4==0)&&(year%100!=0)||(year%400==0))
days=29;
else days=28;
break;
default: printf("month is error\n");
}
printf("year=%d,month=%d,days=%d\n",year,month,days);
}
编译时提示"case 2"那一行“expression syntax”,请教高手是怎么回事啊?谢谢了

if((year%4==0)&&(year%100!=0)||(year%400==0))
你的错误是,其中的(year%400) 左边那个括号为:中文状的符号.

语法错误
不能这样写的

我修改了下,这样就可以了.那些括号可以不用的 用括号时要注意用法正确,不要有中文的

#include <stdio.h>
void main()
{ int year,month,days;
printf("请输入年和月:");
scanf("%d,%d",&year,&month);
switch(month)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31;
break;
case 4:
case 6:
case 9:
case 11: days=30;
break;
case 2: if(year%4==0&&year%100!=0||year%400==0)
days=29;
else days=28;
break;
default: printf("month is error\n");
}
printf("year=%d,month=%d,days=%d\n",year,month,days);
}

有中文的字符输入。检查一下你的case 2那行看看那个是中文的字符输入。

都是正解

来晚了,以上涉及到中文字符的是正解