读书人

9度OJ 题目1174:查找第K小数

发布时间: 2013-02-19 11:11:40 作者: rapoo

九度OJ 题目1174:查找第K小数

题目1174:查找第K小数

时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:2195

解决:869

题目描述:

查找一个数组的第K小的数,注意同样大小算一样大。
如 2 1 3 4 5 2 第三小数为3。

输入:

输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。

输出:

输出第k小的整数。

样例输入:
62 1 3 5 2 23
样例输出:
3
来源:
2010年北京邮电大学网院研究生机试真题


/**********************************   日期:2013-2-11*   作者:SJF0115*   题号: 九度OJ 题目1174:查找第K小数*   来源:http://ac.jobdu.com/problem.php?pid=1174*   结果:AC*   来源:2010年北京邮电大学计算机研究生机试真题*   总结:**********************************/#include<stdio.h>#include<stdlib.h>#include<string.h>//排序函数int cmp(const void *a,const void *b){return *(int *)a - *(int *)b;}int main(){int n,k,i;int array[1001];//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);    while(scanf("%d",&n) != EOF)    {//输入数据for(i = 0;i < n;i++){scanf("%d",&array[i]);}scanf("%d",&k);//排序qsort(array,n,sizeof(array[0]),cmp);int index = 1,flag = 0;//查找for(i = 1;i < n;i++){if(array[i] != array[i-1]){index ++;if(index == k){printf("%d\n",array[i]);flag = 1;break;}}}//数组中数全相等或n = 1 情况if(flag == 0){printf("%d\n",array[0]);}    }    return 0;}


读书人网 >编程

热点推荐