C语言交换数组中的最大值和最小值
时间: 2023-10-11 14:08:40 浏览: 381
以下是 C 语言代码实现交换数组中的最大值和最小值:
```c
#include <stdio.h>
void swap(int *a, int *b) { // 交换两个元素
int temp = *a;
*a = *b;
*b = temp;
}
void swapMinMax(int arr[], int n) { // 交换最大值和最小值
int minIndex = 0, maxIndex = 0; // 最小值和最大值的下标
int i;
for (i = 1; i < n; ++i) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
swap(&arr[minIndex], &arr[maxIndex]);
}
int main() {
int arr[] = {3, 6, 2, 7, 1, 8, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
swapMinMax(arr, n); // 交换最大值和最小值
printf("交换后数组:");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
原始数组:3 6 2 7 1 8 4 5
交换后数组:3 6 8 7 1 2 4 5
```
这里使用了函数 `swap` 来交换两个元素的值,再在 `swapMinMax` 函数中找到最小值和最大值的下标,然后调用 `swap` 函数交换它们的值。
阅读全文