您的位置:首页 > 编程语言 > C语言/C++

华为OJ——输入n个整数,输出其中最小的k个

2016-07-15 20:36 423 查看
输入n个整数,输出其中最小的k个

题目描述

输入n个整数,输出其中最小的k个。

详细描述:

接口说明

原型:

bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);

输入参数:

     unsignedint uiInputNum //输入整数个数

int * pInputArray  //输入整数数组

unsignedint uiK   //需输出uiK个整数

输出参数(指针指向的内存区域保证有效):

    int * pOutputArray //最小的uiK个整数

返回值:

        false 异常失败

          true  输出成功

[b]输入描述:[/b]
输入说明 
1 输入两个整数 
2 输入一个整数数组

 

[b]输出描述:[/b]
输出一个整数数组

 

[b]输入例子:[/b]
5 2
1 3 5 7 2
[b]输出例子:[/b]
1 2
解答代码:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

bool compare(const int a,const int b)
{
if(a!=b)
return a<b;
else
return a<b;
}

int main()
{
int n1,n2,data;
int i,j,coun=0;
vector<int> v;
while(cin>>n1>>n2)
{
v.clear();
coun=0;
for(i=0; i<n1; i++)
{
cin>>data;
v.push_back(data);
}
sort(v.begin(),v.end(),compare);
for(i=0; i<n2-1; i++)
cout<<v[i]<<' ';
cout<<v[n2-1];
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ C语言 OJ 华为 算法