这里为什么会有警告啊?

img

img


#include<stdio.h>
int main(void)
{    
    int month;
    int day;
    printf("请输入1998年的一个月:");
    scanf_s("%d", &month);
    switch (month)
    {
    case1:day = 31; break;
    case2:day = 28; break;
    case3:day = 31; break;
    case4:day = 30; break;
    case5:day = 31; break;
    case6:day = 30; break;
    case7:day = 31; break;
    case8:day = 31; break;
    case9:day = 30; break;
    case10:day = 31; break;
    case11:day = 30; break;
    case12:day= 31; break;

    }

    printf("1998的%d月有%d天", month, day);
    
    return 0;
}

两个问题,第一个你定义day的时候没有写初始值。第二个你可以觉得Switch写了day你才用的所以没问题,但是这里Switch里的值假如不为1-12的话你是写不了day的,所以day是有可能没有赋值就输出了,然后就会报这个错误。