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

来源:互联网 发布:sublime的python插件 编辑:程序博客网 时间:2024/06/02 05:37

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

详细描述:

接口说明

原型:

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

输入参数:

unsignedint uiInputNum //输入整数个数

int * pInputArray  //输入整数数组

unsignedint uiK   //需输出uiK个整数

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

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

返回值: 

        false 异常失败

         true  输出成功

知识点:  循环,数组 

题目来源:  内部整理 

练习阶段:  初级 

运行时间限制: 10Sec

内存限制: 128MByte

输入: 

输入说明

1 输入两个整数

2 输入一个整数数组 

输出: 

输出一个整数数组

样例输入: 5 2

1 3 5 7 2                   

样例输出: 1 2

分值:100分

问题分析:先用冒泡排序法将数列排序,然后输出其中最小的k个数,注意输入输出格式问题(空格问题)

代码:

#include <iostream>using namespace std;void sort(int a[],int n,int k){int i=0,j=0;int temp;if(k>n){cout<<"error"<<"\n";}else{for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}for(i=0;i<k-1;i++){cout<<a[i]<<" ";}cout<<a[k-1]<<"\n";}}int main(){int n;//输入整数个数int k;//输出最小的k个数cin>>n>>k;int a[100];int i=0;for(i=0;i<n;i++)cin>>a[i];sort(a,n,k);return 0;}


0 0