求数组中最大最小5个数的C代码
时间: 2024-01-27 08:03:59 浏览: 24
假设给定的数组为 `arr`,数组中元素的个数为 `n`。以下是求数组中最大最小 5 个数的 C 代码:
```c
#include <stdio.h>
#include <limits.h>
void findMaxMin(int arr[], int n, int* max, int* min) {
*max = INT_MIN;
*min = INT_MAX;
for (int i = 0; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
}
}
int main() {
int arr[] = {10, 7, 23, 14, 5, 9, 30, 18, 3, 16};
int n = sizeof(arr) / sizeof(arr[0]);
int max, min;
findMaxMin(arr, n, &max, &min);
printf("最大的5个数为: ");
for (int i = 0; i < 5; i++) {
int curMax = INT_MIN;
for (int j = 0; j < n; j++) {
if (arr[j] > curMax && arr[j] < max) {
curMax = arr[j];
}
}
max = curMax;
printf("%d ", max);
}
printf("\n");
printf("最小的5个数为: ");
for (int i = 0; i < 5; i++) {
int curMin = INT_MAX;
for (int j = 0; j < n; j++) {
if (arr[j] < curMin && arr[j] > min) {
curMin = arr[j];
}
}
min = curMin;
printf("%d ", min);
}
printf("\n");
return 0;
}
```
上述代码中,首先使用 `findMaxMin` 函数找到数组中的最大值和最小值,然后分别输出最大的 5 个数和最小的 5 个数。在输出最大的 5 个数和最小的 5 个数时,使用了类似选择排序的方法。