题目描述
输入n个正整数(可以有重复的情况出现),输出其中最小的k个(如有重复的情况出现,重复输出),其中1≤k≤n≤10000,每个正整数小于10000。例如输入1、4、8、2、5、7、6、3这8个数字,则最小的4个数字为1、2、3、4。
输入
第一行,n和k,用空格隔开。
n个整数,用空格隔开。
输出
最小的k个正整数,且从小到大排序,用空格隔开。
样例输入
8 4 1 2 3 4 5 6 7 8
样例输出
1 2 3 4
代码
#include<stdio.h>
#define N 10000
int main()
{
int n,k,i,j,temp;
int a[N];
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
//输入数据
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
//冒泡法排序
for(i=0;i<k;i++)
printf("%d ",a[i]);
return 0; //输出前k项
}