题目要求:输入N个数,输出该数列中第k个最大者。

程序源码:

#include <stdio.h>
#include <string.h>

void printResult(int *, int, int);

int main(void)
{
    int N;
    int i;
    int k;
    
    printf("请问您要输入几个数字?");
    scanf("%d", &N);
    printf("请您输入数字:");
    
    int iDate[N];
    
    for(i = 0; i < N; i++)
    {
        scanf("%d", &iDate[i]);
    }
    printf("请问您想输出该数列中第几个最大者?");
    scanf("%d", &k);
    printResult(iDate, k, sizeof(iDate) / sizeof(iDate[0]));
            
    return 0;
} 

void printResult(int *date, int k, int len)
{
    int i, j;
    int temp;
    
    for(i = 0; i < len; i++)
    {
        for(j = 0; j < i; j++)
        {
            if(date[i] > date[j])
            {
                temp = date[i];
                date[i] = date[j];
                date[j] = temp;
            }
        }    
    }
    printf("您要查找的数列中第%d最大者的数值为%d\n", k, date[k-1]);    
}

 

posted on 2016-12-11 18:31  苏古勒哈达  阅读(113)  评论(0)    收藏  举报