1. 程式人生 > >某月天數問題(1.if語句實現 2.二維陣列實現)(c++)

某月天數問題(1.if語句實現 2.二維陣列實現)(c++)

【題目描述】
從鍵盤輸入某年某月,程式設計輸出該年的該月擁有的天數

【題目難點】

  1. 閏年定義:
    (1)能被4整除,卻不能被100整除
    (2)能被400整除

程式碼1(用if簡單語句來完成)

#include <iostream>
using namespace std;

int main()
{
    int y,m;
    do{
        cout << "輸入年份和月份";
        cin >> y >> m;
    } while( m < 1 || m > 12 );
    
    if
( m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12 ) cout << "31"; if( m==4 || m==6 || m==9 || m==11 ) cout << "30"; if( m==2 && ( ( y%4==0 && y%100!=0 ) || ( y%400==0 ) ) ) cout << "29";//閏年二月 if( m==2 && ( ( y%4!=0 ) || ( y%100==
0 && y%400!=0 ) ) ) cout << "28";//非閏年二月 return 0; }

程式碼2(用二維陣列來完成)

#include <iostream>
using namespace std;
#define MONTHS 12

int main()
{
    int day[2][MONTHS] = { { 31,28,31,30,31,30,31,31,30,31,30,31 },
                           { 31,29,31,30,31,30,31,31,30,31,30,31 } }
; int y, m; do{ cout << "輸入年份和月份"; cin >> y >> m; } while( m < 1 || m > 12 ); if( ( ( y%4==0 ) && (y%100!=0) ) || ( y%400==0 ) ) cout << days[1][month-1];//閏年 else cout << days[0][month-1];//非閏年 return 0; }