c语言数组交换最大值最小值
时间: 2024-12-25 14:29:28 浏览: 20
在C语言中,交换数组的最大值和最小值通常会涉及到遍历数组、找到最大和最小元素以及交换它们的过程。这里是一个简单的示例:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int find_min_max(int arr[], int n, int *min, int *max) {
*min = arr[0];
*max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < *min) {
swap(&arr[i], &*min);
}
if (arr[i] > *max) {
swap(&arr[i], &*max);
}
}
return 0;
}
int main() {
int arr[] = {5, 8, 1, 9, 3};
int min, max;
int n = sizeof(arr) / sizeof(arr[0]);
find_min_max(arr, n, &min, &max);
printf("Minimum value is %d and Maximum value is %d\n", min, max);
return 0;
}
```
在这个代码中,`find_min_max`函数首先假设第一个元素即为最小和最大值,然后遍历整个数组。如果遇到比当前最小值更小的数,就更新`min`;如果遇到比当前最大值更大的数,就更新`max`。最后通过指针`min`和`max`返回这两个值。
阅读全文