1. 程式人生 > 實用技巧 >1097某年某月天數

1097某年某月天數

描述

列印某年某月有多少天。

輸入

輸入一行,包含2個整數 分別代表年和月

輸出

輸出一行,包含1個整數,表示該年的這個月份一共有多少天.

輸入樣例 1

2008 2

輸出樣例 1

29

提示

閏年的計算方法:
1.年數能被4整除,並且不能被100整除;
2.能被400整除的整數年份。

錯誤示範:

 1 #include<iostream>
 2 #include<iomanip>
 3 using namespace std;
 4 int main()
 5 {
 6     int a;
 7     int x;
 8     cin>>a>>x;
9 if(a%4==0&&a%100!=0||a%400==0) 10 { 11 if(x==2) cout<<"29"; 12 } 13 else 14 { 15 switch(x) 16 { 17 case 1: 18 cout<<"31"; 19 break; 20 case 2: 21 cout<<"29"; break
; 22 case 3: 23 cout<<"31"; break; 24 case 4: 25 cout<<"30"; break; 26 case 5: 27 cout<<"31"; break; 28 case 6: 29 cout<<"30"; break; 30 case 7: 31 cout<<"
31"; break; 32 case 8: 33 cout<<"31"; break; 34 case 9: 35 cout<<"30"; break; 36 case 10: 37 cout<<"31"; break; 38 case 11: 39 cout<<"30"; break; 40 case 12: 41 cout<<"31"; break; 42 } 43 } 44 return 0; 45 }

這題不難,但是對閏年的考慮加大了難度。

考慮到二月二十九號的情況題目就變得簡單了。

正確程式碼:

 1 #include<iostream>
 2 #include<iomanip>
 3 using namespace std;
 4 int main()
 5 {
 6     int a;
 7     int x;
 8     cin>>a>>x;
 9     if(a%4==0&&a%100!=0||a%400==0)
10     {
11         if(x==2) cout<<"29";
12     }
13     else 
14     {
15         switch(x)
16         {
17             case 1:
18                 cout<<"31";
19                 break;
20             case 2:
21                 cout<<"28"; break;
22             case 3:
23                 cout<<"31"; break;
24             case 4:
25                 cout<<"30"; break;
26             case 5:
27                 cout<<"31"; break;
28             case 6:
29                 cout<<"30"; break;
30             case 7:
31                 cout<<"31"; break;
32             case 8:
33                 cout<<"31"; break;
34             case 9:
35                 cout<<"30"; break;
36             case 10:
37                 cout<<"31"; break;
38             case 11:
39                 cout<<"30"; break;
40             case 12:
41                 cout<<"31"; break;
42         }
43     }
44     return 0;
45 }