慕瓜2277694
2020-02-06 17:10
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day=8;
int sum;
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=62;break;
case 4:sum=93;break;
case 5:sum=124;break;
case 6:sum=155;break;
case 7:sum=186;break;
case 8:sum=217;break;
case 9:sum=248;break;
case 10:sum=279;break;
}
if(year%400=0)
{
sum-=2
printf("本年第%d天",sum);
}
else
{
printf("本年第%d天",sum);
}
return0;
}
sum-=2 忘记加 ;
感觉有几个问题:1.并不是每个月都有31天,所以那个case那里并不是31,62,93,124......这些数,而是31,59(或者闰年60),90(91)......这些数。第二,判断年份是否为闰年有问题。闰年是指这一年的年份是4的倍数且不是100的倍数,特别地,当年份是400的倍数时,这一年也是闰年。举个例子,1900年不是闰年,但2000年是闰年。第三,在sum-=2这一步。平年和闰年的区别是平年比闰年少一天。第四,sum应该是等于前几个月份的总天数加上本月的天数。也就是你那里应该还要加上day。把这几个问题改正一下应该就可以了。
C语言入门
926207 学习 · 20797 问题
相似问题
回答 1
回答 2
回答 2
回答 3
回答 6