int main(){
int year,month,day;
printf("请输入年份和月份\n");
scanf("%d %d",&year,&month);
if(year<1||month<1||month>12)
printf("你输入的年份或月份不合法");
else{
switch(month)
{ case '1':
case '3':
case '5':
case '7':
case '8':
{day=31;
break;}
case '4':
case '6':
{day=30;
break;}
}
printf("%d年的%d月有%d天\n",year,month,day);
}
return 0;
}
显示了一个很大的负数天数
您好,类型不匹配导致了该问题,将case 后面的引号全去掉,如:case '1' 变成 case 1,因为你scanf 输入的格式是 %d int型,在case 后面就不能用char
#include<stdio.h>
int main(void){
int year,month,day;
printf("请输入年份和月份\n");
scanf("%d %d",&year,&month);
if(year<1||month<1||month>12)
printf("你输入的年份或月份不合法\n");
else{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
{
day=31;
break;
}
case 4:
case 6:
{
day=30;
break;
}
}
printf("%d年的%d月有%d天\n",year,month,day);
}
return 0;
}