思路

  1. 获取数据个数n和需要输出的个数k
  2. 获取需要排序的数据
  3. 从小到大排序
  4. 输出前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;
}