HJ58. 输入n个整数,输出其中最小的k个
描述
输入描述
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述
从小到大输出最小的k个整数,用空格分开。
示例1
输入:
5 2 1 3 5 7 2
输出:
1 2
C 解法, 执行用时: 1ms, 内存消耗: 300KB, 提交时间: 2020-11-18
#include "stdio.h" int main() { int x,y; while (scanf("%d %d",&x,&y)!=EOF) { int tmp[x]; scanf("%d",&tmp[0]); for (int i=1;i<x;i++) { scanf("%d",&tmp[i]); for (int j=i;j>0;j--) { if (tmp[j] < tmp[j-1]) { int tmp1 = tmp[j]; tmp[j] = tmp[j-1]; tmp[j-1] = tmp1; } else { break; } } } for (int k=0;k<y;k++) { printf("%d ",tmp[k]); } printf("\n"); } return 0; }
C++ 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2017-11-05
#include <iostream> #include <algorithm> using namespace std; int main(){ int num, n; while(cin>>num>>n){ int a[num]; for(int i=0;i<num;i++){ cin>>a[i]; } sort(a,a+num); for(int i=0;i<n-1;i++){ cout<<a[i]<<' '; } cout<<a[n-1]<<endl; } return 0; }