C语言写一年有多少天,但是结果要么是零要么是31?

把后边注释,输出头部文件的结果时,输出结果是零;全部输出时结果是31,请问哪里出现错误了?

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


}

更改的代码如下所示:


#include <stdio.h>
#include <stdlib.h>
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;//i是写循环的12个月;m是判断闰年还是平年的temp函数结果;s是天数总和 
    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    m=temp(n);
    if(m==1){
        a[1]==28; 
    }
    else{
        a[1]==29;
    }
    for(i=0;i<=11;i+=1){
        s=s+a[i];
    }
    return s; 
}
int main(int argc, char *argv[]) {
    int n,s;
    printf("请输入你想知道天数的年份:");
    scanf("%d",&n);
    s=sum(n);
    printf("这年一共有%d天",s);
//    int s;
//    printf("%d",s);
 
 
}

望采纳!!!点击回答右侧采纳即可!!我看了一下你的代码
在sum函数中没有返回s的值,导致s的值为零,应该在sum函数最后加上return s;