判斷某一年是閏年還是平年
阿新 • • 發佈:2019-02-18
一、首先我們應該知道怎樣判斷一年是否為閏年
條件:能被4整除且不能被100整除或者能被400整除的年份為閏年
二、程式碼
int main() { int year, leap; //定義兩個整型變數year與leap printf("請輸入年份:"); scanf_s("%d", &year); //輸入一個年份 if (year % 4 == 0) //如果這個年份能被4整除 { if (year % 100 == 0) //如果這個年份能被100整除 { if (year % 400 == 0) //如果這個年份能被400整除 leap = 1; else leap = 0; //這個數不能被400整除則將leap置為0 } else leap = 1; //這個數不能被100整除則將leap置為1 } else leap = 0; //這個數不能被這三個數中的任何一個數整除 if (leap) printf("%d is a leap year\n", year); else printf("%d is not a leap year\n", year); return 0; }
三、過程中沒有注意到的問題
1、由於我用的vs2013,在if巢狀的過程中不能確定到底else應該對於那個if
2、最後輸出判斷的時候,我寫的是if(leap=1),執行的時候發現能正常執行,但是永遠都是閏年,後來室友跟我說是因為那句話永遠都是對的,應該改成if(leap)或者if(leap==1),感覺自己還是對賦值符號跟等於符號沒有分清楚
3、vs2013要求輸入必須為scanf_s形式,在vc6.0中直接scanf就可以了
四、反思
更簡便的演算法:if (year%4==0&&year%100!=0||year%400==0) leap=1; else leap=0;