import java.util.Scanner; import java.util.ArrayList; import java.util.List; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { /* * 输入n个整数 升序输出其中最小的k个 第一行输入n k 第二行输入n个整数 * 输出 在一行中输出最小的k个整数*/ Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); List<Integer> numberList = new ArrayList<>(); /*while (scanner.hasNextInt()){ numberList.add(scanner.nextInt()); }*///只适用于有终止条件时使用 否者会一直等待控制台 数字输入 // 若有明确的结束边界 可以使用for循环来进行数据录入 // 若没有边界 使用nextLine整行读取 split分隔字符串 for (int i = 0; i < n; i++) { numberList.add(scanner.nextInt()); } //对numberList进行升序排序 并输出前k个整数 for (int i = 0; i < numberList.size() - 1; i++) { for (int j = 0; j < numberList.size() - i - 1; j++) { if (numberList.get(j) > numberList.get(j + 1)) { // 交换相邻元素 int temp = numberList.get(j); numberList.set(j, numberList.get(j + 1)); numberList.set(j + 1, temp); } } } for (int i = 0; i < k; i++) { System.out.print(numberList.get(i)+" "); } } }