编程序实现:输入一个年份,求出这一年的1月1日是星期几,要求使用全中文形式(如“星期六”)输出,并限定不能使用循环结构。假定从公元第一天开始,就实施格里高利历法,并且公元1年1月1日为星期一。格里高利历法的置闰规则是400年97闰,也可以概括为:四闰百不闰,四百闰。
输入格式:
输入一个代表年份的正整数。
输出格式:
输出中文星期值,最后换行。
输入样例:
2021
输出样例:
在这里给出相应的输出。例如:
星期五
代码
#include<stdio.h>
int judge(int year)
{
int dat,count;
if((year%4==0 && year%100!=0) || year%400==0)
{
dat=366;
// count++;
}
else
{
dat=365;
}
return dat;
}
int week(int year)
{
int i,sum;
for(i=1;i<year;i++)
{
sum+=judge(i);
}
//printf("%d",sum);
return sum%7+1;
}
int main()
{
int year,wek;
scanf("%d",&year);
wek=week(year);
switch(wek)
{
case 0:printf("星期天");break;
case 1:printf("星期一");break;
case 2:printf("星期二");break;
case 3:printf("星期三");break;
case 4:printf("星期四");break;
case 5:printf("星期五");break;
case 6:printf("星期六");break;
}
//printf("\n");
return 0;
}
/*
#include<stdio.h>
int main ()
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
char b[7][10]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
int n,y=1,r=1,i,s1=0,s2=0,s3=0;
scanf("%d",&n);
s1=(n-1)*365+(n-1)/4-(n-1)/100+(n-1)/400;//每一年都当成365天,再加上闰年的个数,由于当年不计算在内,故总年数为n-1
if((n%4==0&&n%100!=0)||n%400==0) a[1]=29;
s2=s1;
for(i=0;i<y-1;i++)
s2+=a[i];
s3=s2+r;
printf("%s",b[s3%7]);
}
*/