【问题描述】
输入n个整数,输出其中最小的k个
【输入形式】
第一行:整数数组
第二行:k
【输出形式】
数组中最小的k个数字
【样例输入1】
1 8 3 4 5 6 7
4
【样例输出1】
1 3 4 5
【样例输入2】
1 2 3 4 5 6
2
【样例输出2】
1 2
【样例说明】
输入数组空格分开,输出的数字从小到大
【评分标准】
请大家选择最适合的排序方法实现,尽量提高算法效率。
#include<stdio.h>
int main()
{
int a[20];
int m=0;
while(1) {
scanf("%d",&a[m]);
m++;
if(getchar()=='\n')
break;
}
int i,j,t;
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int n;
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}