博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九度OJ 题目1174:查找第K小数
阅读量:4104 次
发布时间:2019-05-25

本文共 1070 字,大约阅读时间需要 3 分钟。

题目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
来源:

/**********************************   日期:2013-2-11*   作者:SJF0115*   题号: 九度OJ 题目1174:查找第K小数*   来源:http://ac.jobdu.com/problem.php?pid=1174*   结果:AC*   来源:2010年北京邮电大学计算机研究生机试真题*   总结:**********************************/#include
#include
#include
//排序函数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;}

转载地址:http://vrdsi.baihongyu.com/

你可能感兴趣的文章