請問各位大佬我寫的這個代碼究竟哪里出錯了?為什么一直運行失敗呢?
#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;? ??
}
2020-02-19
?sum-=2? ? 忘記加? ?;
2020-02-07
感覺有幾個問題:1.并不是每個月都有31天,所以那個case那里并不是31,62,93,124......這些數(shù),而是31,59(或者閏年60),90(91)......這些數(shù)。第二,判斷年份是否為閏年有問題。閏年是指這一年的年份是4的倍數(shù)且不是100的倍數(shù),特別地,當年份是400的倍數(shù)時,這一年也是閏年。舉個例子,1900年不是閏年,但2000年是閏年。第三,在sum-=2這一步。平年和閏年的區(qū)別是平年比閏年少一天。第四,sum應該是等于前幾個月份的總天數(shù)加上本月的天數(shù)。也就是你那里應該還要加上day。把這幾個問題改正一下應該就可以了。