用switch case算一个月有多少天

想用switch case 写一个算一个月有多少天并将天数输出
#include<stdio.h>

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;


}

显示了一个很大的负数天数

img

我的解答思路和尝试过的方法
我想要达到的结果

您好,类型不匹配导致了该问题,将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;
}

img