第1关:用switch语句实现输入某年某月某日,判断这一天是这一年的第几天
任务描述
本关任务:输入某年某月某日,判断这一天是这一年的第几天,要考虑这一年是否是闰年。
测试说明
测试输入:2020 10 5
预期输出:这一天是这一年的第279天
#include<stdio.h>
int main()
{
int day, month, year, num = 0, leap;
scanf("%d%d%d", &year, &month, &day);
/*先计算某月以前月份的总天数*/
switch (month-1)
{
case 1:num = 31; break;
case 2:num = 59; break;
case 3:num = 90; break;
case 4:num = 120; break;
case 5:num = 151; break;
case 6:num = 181; break;
case 7:num = 212; break;
case 8:num = 243; break;
case 9:num = 273; break;
case 10:num = 304; break;
case 11:num = 334; break;
case 12:num = 365; break;
}
num += day;/*再加上当月的天数*/
if (year % 4==0)/*判断是不是闰年*/
{
if (year % 100==0)
{
if (year % 400==0)leap = 1;
else leap = 0;
}
leap = 1;
}
else leap = 0;
if (leap)/*如果是闰年且月份大于2,总天数应该加一天*/
{
if (month > 2)num += 1;
}
printf("这一天是这一年的第%d天", num);
return 0;
}
······通关成功······
如有问题,敬请斧正。