#include<stdio.h>
#include<stdlib.h>
int nian(int x)//判断闰年 ,x是年份
{
if(x%4==0&&x%100!=0)
return(366);//闰年
else
return(365);
}
int yue(int x,int y)//x是年份,y是月份
{
int a;
if(x==366)
{
if(y==1) a=0;
if(y==2) a=31;
if(y==3) a=60;
if(y==4) a=91;
if(y==5) a=121;
if(y==6) a=152;
if(y==7) a=182;
if(y==8) a=213;
if(y==9) a=244;
if(y==10) a=274;
if(y==11) a=305;
if(y==12) a=335;
}
if(x==365)
{
if(y==1) a=0;
if(y==2) a=31;
if(y==3) a=59;
if(y==4) a=90;
if(y==5) a=120;
if(y==6) a=151;
if(y==7) a=181;
if(y==8) a=212;
if(y==9) a=243;
if(y==10) a=273;
if(y==11) a=304;
if(y==12) a=334;
}
return(a);
}
int tian(int z,int x,int y)//z是年份,x是月份,y是号
{
int a;
x=yue(nian(z),x);
a=x+y;
return(a);
}
void xq(int x,int y,int z)//x是年份,y是月份 ,z是号
{
int i,d=0;//d是总天数
for(i=1;i<=x-1;i++)
{
d=d+nian(i);
}
d=d+tian(x,y,z);
if(d%7==0) printf("星期天,");
if(d%7==6) printf("星期六,");
if(d%7==5) printf("星期五,");
if(d%7==4) printf("星期四,");
if(d%7==3) printf("星期三,");
if(d%7==2) printf("星期二,");
if(d%7==1) printf("星期一,");
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
xq(a,b,c);
printf("这是%d年的第%d天",a,tian(a,b,c));
return 0;
}
当a=2021,b=12,c=17,输出:星期五,这是2021年的第351天
为什么这串函数输出的是星期天