用函数,输入组数,最小的元素和最大的元素交换,输出数组,C语言
时间: 2023-11-02 07:27:02 浏览: 71
python 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组(示例)
5星 · 资源好评率100%
好的,下面是一个 C 语言函数,可以实现你所要求的功能:
```c
#include <stdio.h>
#include <stdlib.h>
void swap_min_max(int arr[], int n) {
if (n <= 0) return;
int min_idx = 0, max_idx = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < arr[min_idx]) min_idx = i;
if (arr[i] > arr[max_idx]) max_idx = i;
}
int temp = arr[min_idx];
arr[min_idx] = arr[max_idx];
arr[max_idx] = temp;
}
int main() {
int arr[] = {3, 5, 2, 8, 1, 9, 4, 7, 6};
int n = sizeof(arr) / sizeof(arr[0]);
swap_min_max(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个函数的参数 `arr` 是一个包含整数元素的数组,`n` 是数组的长度。它会将数组中最小值和最大值交换,并且不会返回任何值。
你可以这样调用这个函数:
```c
int arr[] = {3, 5, 2, 8, 1, 9, 4, 7, 6};
int n = sizeof(arr) / sizeof(arr[0]);
swap_min_max(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
```
在上面的例子中,输入的数组是 `{3, 5, 2, 8, 1, 9, 4, 7, 6}`,最小值是 1,最大值是 9,经过交换后得到的新数组是 `{3, 5, 2, 6, 1, 9, 4, 7, 8}`。
阅读全文