用C语言编程:输入整数数组 arr ,找出其中最小的 k 个数。
时间: 2024-06-09 20:06:43 浏览: 201
要用C语言编程实现找出整数数组arr中最小的k个数,可以按照以下步骤进行操作:
1. 首先,声明一个变量min_index,用于记录当前最小值的索引。
2. 创建一个循环,循环k次。在每次循环中,找到当前未排序区间中的最小值,并记录其索引到min_index中。
3. 将找到的最小值与未排序区间的第一个元素交换位置,将找到的最小值放在已排序区间的末尾。
4. 重复步骤2和3,直到找到k个最小值为止。
下面是用C语言编写的示例代码:
```c
#include <stdio.h>
void findKSmallest(int arr[], int n, int k) {
int min_index, temp;
for (int i = 0; i < k; i++) {
min_index = i;
// 找出未排序区间中的最小值
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// 将最小值与未排序区间的第一个元素交换位置
temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
int main() {
int arr[] = {5, 3, 8, 1, 9, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 3;
findKSmallest(arr, n, k);
printf("最小的 %d 个数为:", k);
for (int i = 0; i < k; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:最小的3个数为:1 2 3
阅读全文