题解 | #输入n个整数,输出其中最小的k个#
输入n个整数,输出其中最小的k个
http://www.nowcoder.com/practice/69ef2267aafd4d52b250a272fd27052c
思路
- 获取数据个数n和需要输出的个数k
- 获取需要排序的数据
- 从小到大排序
- 输出前k个数
题解
#include<stdio.h>
#include<string.h>
int main()
{
// 输入n个整数,找出其中最小的k个整数并按升序输出
// 本题有多组输入样例
// 数据范围:1≤n≤1000 ,输入的整数满足 1≤val≤10000
int n;
int k;
int val[1000];
scanf("%d %d",&n, &k);
for(int i=0; i<n; i++){
scanf("%d",&val[i]);
}
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
if(val[i]>val[j]){
int tmp = val[i];
val[i] = val[j];
val[j] = tmp;
}
}
}
for(int i=0; i<k; i++){
printf("%d ",val[i]);
}
// 输入描述:
// 第一行输入两个整数n和k
// 第二行输入一个整数数组
// 输出描述:
// 从小到大输出最小的k个整数,用空格分开。
// 示例1
// 输入:
// 5 2
// 1 3 5 7 2
// 复制
// 输出:
// 1 2
return 0;
}