請教一下:如下按閏年編程的代碼思路是否可行?
int main()?
{?
? ? /* 定義需要計算的日期 */
? ? int year = 2008;
? ? int month = 8;
? ? int day = 8;
? ? /*
? ? ?* 請使用switch語句,if...else語句完成本題
? ? ?* 如有想看小編思路的,可以點擊左側任務中的“不會了怎么辦”
? ? ?* 小編還是希望大家獨立完成哦~
? ? ?*/
? ? ?int sum , flag ;
? ? switch(month):
? ? {
? ? ? ? case 1:sum=0;? break;
? ? ? ? case 2:sum=31; break; //31
? ? ? ? case 3:sum=60; break; //29
? ? ? ? case 4:sum=91; break; //31
? ? ? ? case 5:sum=121; break; //30
? ? ? ? case 6:sum=152; break; //31
? ? ? ? case 7:sum=182; break; //30
? ? ? ? case 8:sum=213; break; //31
? ? ? ? case 9:sum=244; break; //31
? ? ? ? case 10:sum=274; break; //30
? ? ? ? case 11:sum=305; break; //31
? ? ? ? case 12:sum=335; break; //30
? ? ? ? default:printf("1年只有12個月");break;
? ? }
? ? sum=sum+day
? ? if(year%100==0) || (year%4==0 && year%100!=0 )??
? ? ? ?flag=0;
? ? else
? ? ? ?flag=-1;
? ? if(flag==0 && month>=2)
? ? ? sum=sum++ ;
? ? printf("%d年%d月%d日是該年的第%d天",year,month,day,sum) ;
? ??
return 0;
}
2019-11-30
最好改成
??? if(year%400==0) || (year%4==0 && year%100!=0 )?
還有
? if(flag==0 && month>=3)
? ? ? sum=sum--;