Problem Description
求n个整数中倒数第二小的数。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。
每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。
Input
输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);
输入的第一行是一个整数C,表示有C测试数据;
每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数 (每个数均小于100);
Output
请为每组测试数据输出第二小的整数,每组输出占一行。
Sample Input
2
2
1 2
3
1 1 3
Sample Output
2
1
1 #include <stdio.h> 2 3 int main(){ 4 int T; 5 int n; 6 int i; 7 int min; 8 int min_flag; 9 int number[11]; 10 11 scanf("%d",&T); 12 13 while(T--){ 14 scanf("%d",&n); 15 16 for(i=0;i<n;i++){ 17 scanf("%d",&number[i]); 18 19 if(i==0){ 20 min=number[0]; 21 min_flag=0; 22 } 23 24 if(number[i]<min){ 25 min=number[i]; 26 min_flag=i; 27 } 28 } 29 30 for(i=0;i<n;i++){ 31 if(i!=min_flag){ 32 min=number[i]; 33 break; 34 } 35 } 36 37 for(i=0;i<n;i++){ 38 if(i!=min_flag && number[i]<min) 39 min=number[i]; 40 } 41 42 printf("%d ",min); 43 } 44 45 return 0; 46 }