九度OJ 题目1174:查找第K小数
2013-02-11 20:50
260 查看
题目1174:查找第K小数
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2195
解决:869
题目描述:
查找一个数组的第K小的数,注意同样大小算一样大。
如 2 1 3 4 5 2 第三小数为3。
输入:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出:
输出第k小的整数。
样例输入:
样例输出:
来源:2010年北京邮电大学网院研究生机试真题
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2195
解决:869
题目描述:
查找一个数组的第K小的数,注意同样大小算一样大。
如 2 1 3 4 5 2 第三小数为3。
输入:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000),再输入k。
输出:
输出第k小的整数。
样例输入:
6 2 1 3 5 2 2 3
样例输出:
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; }
相关文章推荐
- 九度OJ-题目1174:查找第K小数-10网研上机B
- 题目1174:查找第K小数
- 题目1174:查找第K小数
- 题目1174:查找第K小数
- 九度oj 题目1174:查找第K小数(sort的使用)
- 【九度OJ】题目1174:查找第K小数 解题报告
- 题目1174:查找第K小数
- 题目1174:查找第K小数
- 九度OJ 1174 查找第K小数 (STL)
- 九度OJ 1174:查找第K小数 (排序、查找)
- 九度OJ 1174:查找第K小数 (排序、查找)
- 九度oj 题目1384:二维数组中的查找
- 【剑指Offer面试编程题】题目1384:二维数组中的查找--九度OJ
- 九度OJ题目1173:查找
- 【剑指Offer面试编程题】题目1384:二维数组中的查找--九度OJ
- 九度OJ—题目1534:数组中第K小的数字
- hiho一下 第三十七周 题目1 : 二分·二分查找之k小数
- 九度oj 题目1069:查找学生信息--字典
- 九度OJ题目1176:树查找
- 九度oj-剑指offer-题目1384:二维数组中的查找