Problem Description
For this problem, you will write a program that prints the Nth largest value in a fixed sized array of integers. To make things simple, N will be 3 and the array will always be have 10 decimal integer values.
Input
The first line of input contains a single integer P, (1 ≤ P ≤ 1000), which is the number of data sets that follow. Each data set consists of a single line containing the data set number, followed by a space,followed by 10 space separated decimal integers whose values are between 1 and 1000 inclusive.
Output
For each data set, generate one line of output with the following values: The data set number as a decimal integer, a space, and the 3rd largest value of the corresponding 10 integers.
Sample Input
4
1 1 2 3 4 5 6 7 8 9 1000
2 338 304 619 95 343 496 489 116 98 127
3 931 240 986 894 826 640 965 833 136 138
4 940 955 364 188 133 254 501 122 768 408
Sample Output
1 8
2 489
3 931
4 768
1 #include <stdio.h> 2 3 int main(){ 4 int T; 5 int n; 6 int number; 7 int i; 8 int max; 9 int middle; 10 int min; 11 12 scanf("%d",&T); 13 14 while(T--){ 15 max=1; //对最大的三个数进行初始化 16 middle=1; 17 min=1; 18 scanf("%d",&n); 19 20 for(i=0;i<10;i++){ 21 scanf("%d",&number); 22 23 if(number>max){ //如果找到当前最大的数,舍去最小数 24 min=middle; 25 middle=max; 26 max=number; 27 } 28 29 else if(number>middle){ //如果找到当前第二大的数,舍去最小数 30 min=middle; 31 middle=number; 32 } 33 34 else if(number>min) //如果找到当前第三大的数,舍去最小数 35 min=number; 36 } 37 38 printf("%d %d ",n,min); 39 40 } 41 return 0; 42 }