d069: 文文的求婚--續集 (n 行版) (25)
更新時間:2016/12/21
內容:承 a004,珊珊終於學成歸國了,文文的考驗時刻也到了。走出了迎客大廳,珊珊問:「What type of year was I born in?」文文很有自信的回答:「閏年!」可是珊珊卻說:「No, It was a LEAP YEAR!」看來文文要娶到珊珊,還得先把英文練一練。
輸入說明:
輸入的第一行有一個整數 n。接下來的 n 行每行有一個正整數 y,代表珊珊生日的西元年份。
輸出說明:
對於所輸入的每個 y,要各別輸出一行。若 y 是閏年,請於該行輸出「a leap year」,否則請輸出「a normal year」。
範例輸入:
4
1992
1993
1900
2000
範例輸出:
a leap year
a normal year
a normal year
a leap year
提示:
背景知識:
while 迴圈
想一想,再看解答~
我的解題想法:
西元年被4整除且不被100整除,或被400整除者即為閏年。
程式碼:
#include <stdio.h> int main(void){ int n,y; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&y); printf("%s",(y%4==0&&y%100!=0)||(y%400==0) ? "a leap year\n" : "a normal year\n"); } return 0; }程式碼解析:
#1: | 引入標準輸入/輸出串流。 |
#2: | 主程式開始,回傳引數int,沒有參數。 |
#3: | 宣告2個整數(int)變數「n」、「y」,範圍–2,147,483,648 到 2,147,483,647。 |
#4: | 從標準輸入讀取格式化數據。讀取1個整數(%d),指定值給「n」。 |
#5: | 迴圈 for 開始。區域變數「i」,從 1 開始到 n 結束 (int i=1;i<=n;i++)。 |
#6: | 從標準輸入讀取格式化數據。讀取1個整數(%d),指定值給「y」。 |
#7: | 將格式化數據顯示到標準輸出。輸出1個字串(%s)「(y%4==0&&y%100!=0)||(y%400==0) ? "a leap year\n" : "a normal year\n"」。 如果 (y%4==0&&y%100!=0)||(y%400==0) 成立,輸出 a leap year\n ;否則輸出 a normal year\n。(「\n」代表換行) |
#8: | 迴圈 for 結束。 |
#9: | 主程式回傳整數「0」。 |
#10: | 主程式結束。 |