如何用C语言编写交换最小值和最大值的代码
时间: 2024-12-24 19:32:51 浏览: 4
C语言程序设计-输入一维数组的8个元素,并将最大值与最后一个数交换
5星 · 资源好评率100%
在C语言中,我们可以使用两个变量来存储数组中的最大值和最小值,并通过比较操作来进行交换。以下是一个简单的示例,假设我们有一个整数数组`arr[]`和它的长度`n`:
```c
#include <stdio.h>
// 定义交换函数
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 函数用于找到并交换数组中的最大值和最小值
void swapMinMax(int arr[], int n) {
// 初始化最大值为第一个元素,最小值也为第一个元素
int max = arr[0], min = arr[0];
// 遍历数组查找最大值和最小值
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
// 如果当前最大值不是最小值,交换它们
if (max != min) {
swap(&max, &min);
}
// 打印结果
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\nAfter swapping: ");
printf("Max: %d, Min: %d\n", max, min);
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int n = sizeof(arr) / sizeof(arr[0]);
swapMinMax(arr, n);
return 0;
}
```
这个程序会首先找到数组中的最大值和最小值,然后判断是否需要交换,最后打印原始数组和交换后的数组。
阅读全文