用c语言实现,封装成一个函数用指针实现将最大数与第一个元素交换,最小数和第一个元素交换
时间: 2024-05-01 17:23:19 浏览: 77
c语言利用指针求数组的最大值与最小值
可以使用以下函数实现将最大数与第一个元素交换,最小数和第一个元素交换:
```c
void swap_max_min(int *arr, int size) {
int max_index = 0, min_index = 0;
for (int i = 1; i < size; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
int temp = arr[0];
arr[0] = arr[max_index];
arr[max_index] = temp;
temp = arr[0];
arr[0] = arr[min_index];
arr[min_index] = temp;
}
```
该函数接受一个整数类型的指针 `arr` 和一个整数类型的参数 `size`,表示数组的大小。函数首先使用一个循环遍历整个数组,找到数组中的最大数和最小数的索引,然后将最大数与第一个元素交换,将最小数与第一个元素交换。
使用示例:
```c
#include <stdio.h>
void swap_max_min(int *arr, int size);
int main() {
int arr[] = {5, 10, 3, 8, 2};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
swap_max_min(arr, size);
printf("\nArray after swapping max and min with first element: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
Original array: 5 10 3 8 2
Array after swapping max and min with first element: 2 10 3 8 5
```
阅读全文