c的平年闰年报错,都是365?


#include 
#include 

int temp(int n)
{
    if((n%100!=0&&n%4==0)||n%400==0){//1是闰年 
        return 1;
    }
    else{
        return 0;//0是平年 
    }
}

int sum(int n)
{   int m,s=0,i,l;//i是写循环的12个月;m是判断闰年还是平年的temp函数结果;s是天数总和 
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    m=temp(n);
    switch(m){
        case1:(a[1]=29);
        break;
        case0:(a[1]=28);
        break;
    }
    l=a[1];
return l;
//    for(i=0;i<=11;i+=1){
//        s=s+a[i];
//    } 
//    return s;
}
int main(int argc, char *argv[]) {
    int n,s,l;
    scanf("%d",&n);
    l=sum(n);
    printf("%d",l);
    }
//    printf("请输入你想知道天数的年份:");
//    scanf("%d",&n);
//    s=sum(n);
//    printf("这年一共有%d天",s);
    


望采纳!!!

case 后面要加空格

case1
改为
case 1
要有空格
如果不带空格,那么相当于switch里没有case语法,这就是单纯的两个标签,哪个也不会走
而a[1]的默认值是28,它不会变