Trick演算法 給出年份和總天數求出對應月份

2021-06-26 23:15:33 字數 717 閱讀 7701

題目描述:給出年份(***x格式)和總天數(大於等於0的整數),求出對應月份,輸入多組資料,以0 0結束。比如:輸入2014 32->輸出2

常規思維是用12個if...break分支語句,這樣一來**就會變的很長,而且重複率高,沒有美感。

新的思路是,將每個月的天數存在乙個陣列裡,然後設定乙個累加變數sum,這個變數存從1月到第i+1個月的總天數,如果day小於等於sum,就輸出陣列對應的下標。

如此,**就變的短巧美觀多了:

/*由年份和總天數求出對應年份*/

/*以輸入0 0結束*/

#include#includeint isleap(int y)

if(y%4==0&&y%100!=0)/*或者能被4整除但不能被100整除*/

else

return 0;

} int main()

;/*閏年*/ /*用乙個陣列表示每個月的天數*/

int monthday[12]=; /*非閏年*/

int sum;

if(isleap(year))

else

}} else

else

}}

} return 0;

}

執行結果:

輸入年份和天數計算該年份中具體的日期(指標實現)

includevoid getdata int ptryear,int ptryeaday void getmonthday int year,int yearday,int ptrmonth,int ptrday void dispdate int year,int month,int day i...

計算閏年, 根據年份和月份返回天數(3種方法)

翻閱筆記系列 看以前的筆記,感覺就是 我以前還了解過這個。int year scanf d year bool bflag year year 100?4 400 false true if true bflag else 得到每月的天數 define month 12 int getdayscou...

程式設計輸入年份和月份並對輸入的當前月份總天數的實現

一年有365天和366天,如果是閏年的話它的2月份會有29天,而不是閏年時它的2月份就只有28天,所以在完成這個程式設計時我們還要先對當前輸入的年份是屬於閏年和平年的判斷。判斷閏年和平年的口訣是 四年一閏,百年不閏,四百年再閏 化成公式 year 4 0 year 100 0 year 400 0 ...