2325: 查找【数组】

2325: 查找【数组】

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 378  Solved: 136
[Submit][Status][Web Board]

Description

利用search(a,n,k)函数在数组a的前n(n>=1)个元素中找出前k个(1<=k<=n)小的值。假设数组a中各元素的值都不相同。

Input

数组中各元素

n k

Output

a中前k个小的值

Sample Input

5 6 2 1 4 85 78 11
7 4

Sample Output

5 2 1 4

HINT

 

Source


#include<stdio.h> int main() { int a[20],c[20],n,i,j,k,temp; char x; for(i=0;i<20;i++) { scanf("%d%c",&a[i],&x); if(x=='\n') break; } scanf("%d%d",&n,&k); for(i=0;i<n;i++) c[i]=a[i]; for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } }//对a[i]进行排序// for(i=0;i<n;i++) { if(c[i]<=a[k-1])//此时a[i]从小到大排列,取k个较小数,则这些数中最大的就是a[k-1]// printf("%d ",c[i]); } return 0; }
原文地址:https://www.cnblogs.com/mjn1/p/8433864.html