用c语言编写程序来交换一组数据中的最大值和最小值
时间: 2024-10-15 15:22:44 浏览: 40
C语言程序设计-输入一维数组的8个元素,并将最大值与最后一个数交换
5星 · 资源好评率100%
在C语言中,你可以使用函数来完成这个任务。首先,你需要创建一个函数来找到数组中的最大值和最小值,然后另一个函数来交换这两个值。以下是一个简单的示例:
```c
#include <stdio.h>
// 函数声明
void findMinMax(int arr[], int n, int *min, int *max); // 找到并返回最小值和最大值
void swap(int *a, int *b); // 交换两个整数
int main() {
int data[] = {5, 2, 9, 1, 7};
int size = sizeof(data) / sizeof(data[0]);
int min, max;
// 寻找最小值和最大值
findMinMax(data, size, &min, &max);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", data[i]);
}
// 交换最小值和最大值
swap(&min, &max);
printf("\nAfter swapping: ");
for (int i = 0; i < size; i++) {
printf("%d ", data[i]); // 最小值现在在原最大值位置,反之亦然
}
return 0;
}
// 函数定义
void findMinMax(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)
*min = arr[i];
else if (arr[i] > *max)
*max = arr[i];
}
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在这个例子中,`findMinMax`函数遍历数组找到最小值和最大值,而`swap`函数用于实际的值交换。在主函数里,我们先找出原始数组的最大值和最小值,然后通过传递地址交换它们。
阅读全文