首页 > 代码库 > Nth Largest Value

Nth Largest Value

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",n,min);39 40     }41     return 0;42 }

 

Nth Largest Value