Problem C: 查找【数组】
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 220 Solved: 73
[ 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
代码实现:
#include<iostream>
#include<algorithm>
using namespace std;
void search(int a[1000],int n ,int k)
{
int b[1000];
int times=0;
for(int i=0;i<n;i++)
{
b[i]=a[i];
}
sort(a,a+n);
for(int m=0;m<n;m++)
{
for(int j=0;j<k;j++)
{
if(a[j]==b[m])
{
cout<<a[j];
times++;
if(times!=k)
{
cout<<" ";
}
}
}
if(times==k)
return ;
}
}
int main()
{
int one[1000];
int k=0;
while(cin>>one[k])
{
k++;
}
int m=one[k-2];
int n=one[k-1];
search(one,m,n);
return 0;
}