请朋友们帮我解决一道c++的题目,题目在补充里已知计算某一年(用x表示)的1月1日(用day_code表示)是星期几的公式为:day_code=(x+[(x-1)/4]-[(x-1)/100]+[(x- 1)/400]) % 7其中[m]表示小于或者等于m的最大整

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/02 05:45:24

请朋友们帮我解决一道c++的题目,题目在补充里
已知计算某一年(用x表示)的1月1日(用day_code表示)是星期几的公式为:
day_code=(x+[(x-1)/4]-[(x-1)/100]+[(x- 1)/400]) % 7
其中[m]表示小于或者等于m的最大整数.
输入某一年份,输出这一年是否是闰年,以及这一年的1月1日是星期几.
提示:判断周几用case语句实现,day_code有7 个结果,0代表周日,1、2…6代表周一到周六.

/*
已知计算某一年(用x表示)的1月1日(用day_code表示)是星期几的公式为:
day_code=(x+[(x-1)/4]-[(x-1)/100]+[(x- 1)/400]) % 7
其中[m]表示小于或者等于m的最大整数.
输入某一年份,输出这一年是否是闰年,以及这一年的1月1日是星期几.
提示:判断周几用case语句实现,day_code有7 个结果,0代表周日,1、2…6代表周一到周六.
*/
#include
int main(int argc, char *argv[])
{
int year;
int day_code;
while(scanf("%d",&year)!=EOF)
{
// 判断闰年
if((year%100!=0&&year%4==0)||year%400 == 0)
{
printf("%d 年是闰年.",year);
}
else
{
printf("%d 年不是闰年.",year);
}

// 1月1号星期几
day_code = (year+(year-1)/4-(year-1)/100+(year- 1)/400) % 7 ;
switch (day_code)
{
case 0:
printf("1月1号星期日 .\n",year);
break;
case 1:
printf("1月1号星期一 .\n",year);
break;
case 2:
printf("1月1号星期二 .\n",year);
break;
case 3:
printf("1月1号星期三 .\n",year);
break;
case 4:
printf("1月1号星期四 .\n",year);
break;
case 5:
printf("1月1号星期五 .\n",year);
break;
case 6:
printf("1月1号星期六 .\n",year);
break; 
}
}
return 0;
}