某月天數問題(1.if語句實現 2.二維陣列實現)(c++)
阿新 • • 發佈:2018-11-16
【題目描述】
從鍵盤輸入某年某月,程式設計輸出該年的該月擁有的天數
【題目難點】
- 閏年定義:
(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;
}