文章根據王道機試書進行學習。
當年數不能被100整除時若其能被4整除則為閏年,或者其能被400整除也為閏年,閏年二月29天,平年二月28天
即year%100!=0 &&year%4==0 ||year%400==0
問題描述:
有兩個日期,求兩個日期之間的天數,如果兩個日期時連續的我們規定他們之間的天數為兩天。
輸入:有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd
示例**:
(思想是把問題統一到與原點日期2023年1月1日時間差的計算上)
#include
#define isyeap(x) x%100!=0&&x%4==0||x%400==0?1:0
//定義巨集判斷是否閏年
int dayofmonth[13]
[2]=
;struct data}}
};int buf[
5001][
13][32
];//儲存預處理的天數
intabs
(int x)
intmain()
int d1,m1,y1;
int d2,m2,y2;
while
(scanf
("%4d%2d%2d"
,&y1,
&m1,
&d1)
!=eof
)return0;
}
樣例輸入:
9 october 2001
14 october 2001
樣例輸出:
tuesday
sunday
示例**:
#include
#include
#define isyeap(x) x%100!=0&&x%4==0||x%400==0?1:0
int dayofmonth[13]
[2]=
;struct data}}
};int buf[
5001][
13][32
];char monthname[13]
[20]=
;char weekname[7]
[20]=
;int
main()
int d,m,y;
char s[20]
;while
(scanf
("%d%s%d"
,&d,s,
&y)!=
eof)
}int days=buf[y]
[m][d]
-buf[
2019][
7][12
];//2023年7月12日是周五
days+=5
;//周五下標是5
printf
("%s\n"
,weekname[
(days%7+
7)%7
]);}
return0;
}
巨集定義的函式形式如:#define isyeap(x) x%100!=0&&x%4==0||x%400==0?1:0
strcmp()字串比較,當為0時候表示相同
王道機試 日期類問題
題目描述 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天輸入 有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd輸出 每組資料輸出一行,即日期差值做題思路 樣例輸入 20110412 20110422樣例輸出 11對於日期類 年月日,就像學生資訊...
機試之日期問題 列印日期
題目描述 給出年分m和一年中的第n天,算出第n天是幾月幾號。輸入描述 輸入包括兩個整數y 1 y 3000 n 1 n 366 輸出描述 可能有多組測試資料,對於每組資料,按 yyyy mm dd的格式將輸入中對應的日期列印出來。示例1輸入 2000 32000 312000 402000 6020...
c c 機試排版類問題
第一題,列印梯形 題目描述 輸入乙個高度h,輸出乙個高為h,上底邊為h的梯形。輸入 乙個整數h 1 h 1000 輸出 h所對應的梯形。樣例輸入 4 樣例輸出 這題比較簡單,為 include include include include include includeusing namespac...