29: 求最晚和最早日期


29 求最晚和最早日期

作者: Fu 時間限制: 1S 章節: 循環

問題描述 :
輸入N個日期,每個以年、月、日的順序讀入,打印輸出最晚的日期、最早的日期。

輸入說明 :
你的程序需要從標准輸入設備(通常為鍵盤)中讀入多組測試數據。每組輸入數據由多行組成。每組測試數據的第一行輸入一個整數N(0<N<20),表示有N個日期。其后N行每行有三個整數Y(1≤Y≤2015),M(1≤M≤12),D(1≤D≤31)表示一個日期。

輸出說明 :
對每組測試數據,你的程序需要向標准輸出設備(通常為啟動該程序的文本終端)輸出兩行,每行包括3個整數,第一行為最晚日期,第二行為最早日期,整數之間以一個空格分隔,行首與行尾無空格,所有數據前后沒有多余的空行,兩組數據之間也沒有多余的空行。

輸入范例 :
3
2015 3 2
2011 4 15
1 1 1
輸出范例 :
2015 3 2
1 1 1
代碼:

#include <stdio.h>
int main()
{
	int y, m, d;
	int maxy, miny, maxm, minm, maxd, mind;
	int n;
	scanf("%d", &n);
	scanf("%d%d%d", &y, &m, &d);
	maxy = miny = y; maxm = minm = m; maxd = mind = d;
	for (int i = 1; i < n; i++)
	{
		scanf("%d%d%d", &y, &m, &d);
		if (maxy < y)
		{
			maxy = y; maxm = m; maxd = d;
		}
		else if (maxy == y)
		{
			if (maxm<m)
			{
				maxy = y; maxm = m; maxd = d;
			}
			else if (maxm==m)
			{
				if (maxd < d)
				{
					maxy = y; maxm = m; maxd = d;
				}
			}
		}
		if (miny > y)
		{
			miny = y; minm = m; mind = d;
		}
		else if (miny == y)
		{
			if (minm<m)
			{
				miny = y; minm = m; mind = d;
			}
			else if (minm == m)
			{
				if (mind < d)
				{
					miny = y; minm = m; mind = d;
				}
			}
		}
	}
	printf("%d %d %d\n%d %d %d\n", maxy, maxm, maxd, miny, minm, mind);
	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM