1. 程式人生 > >ACM刷題之求第二小整數

ACM刷題之求第二小整數

Problem Description

求n個整數中倒數第二小的數。
每一個整數都獨立看成一個數,比如,有三個數分別是1,1,3,那麼,第二小的數就是1。

Input

輸入包含多組測試資料。
輸入的第一行是一個整數C,表示有C測試資料;
每組測試資料的第一行是一個整數n,表示本組測試資料有n個整數(2<=n<=10),接著一行是 n個整數 (每個數均小於100);

Output

請為每組測試資料輸出第二小的整數,每組輸出佔一行。

Sample Input

2
2
1 2
3
1 1 3

Sample Output

2
1
#include <iostream>
using namespace std;
int main()
{
	int c,n;
	int i,a[10];   
	int min1,min2,t;     //min1為最小的整數,min2為第二小的數。
	cin>>c;
	for(;c>0;c--)
	{
		cin>>n;
		min1=101;        //最大值為100,所以定義為101與102.
		min2=102;
		for(i=0;i<n;i++)
		{
			cin>>a[i];
			if(min1>a[i])    //求最小數
			{
				t=a[i];
				min2=min1;
				min1=t;
			}
			else if(min1<=a[i])  // 如果輸入的數不是大於最小數則與min2比較
				if(min2>a[i])
					min2=a[i];				
		}
		cout<<min2<<endl;
	}
	return 0;
}