c语言问题 输入年月日,输出是当年的第几日,返回值不对 为什么

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:13:21
# include <stdio.h>

void main(){

int year,month,day;
int dayofyear(int year,int month,int day);
printf("Please input the date:\n");
scanf("%d%d%d",&year,&month,&day);

dayofyear(year,month,day);

printf("%d day\n",day);//这里返回的天数不对 还是输入的那个日期

}

dayofyear(int year,int month,int day)
{
int k,leap;
int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};

leap=(year%4==0&&year%100!=0)||year%400==0;
for (k=1;k<month;k++)
day=day+tab[leap][k];
return day;
}

# include <stdio.h>

void main(){

int year,month,day;
int dayofyear(int year,int month,int day);
printf("Please input the date:\n");
scanf("%d%d%d",&year,&month,&day);

int n=dayofyear(year,month,day);
printf("%d day\n",n);

}

dayofyear(int year,int month,int day)
{
int k,leap;
int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};

leap=(year%4==0&&year%100!=0)||year%400==0;
for (k=1;k<month;k++)
day=day+tab[leap][k];
return day;
}