ACM刷題之求第二小整數
阿新 • • 發佈:2019-01-24
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; }