c语言中,设计一个连续比较大小,最后返回最大值和最小值的函数
时间: 2024-09-12 12:09:43 浏览: 34
在C语言中,你可以设计一个递归函数来实现这个功能,因为递归可以方便地处理任意数量的输入并不断更新当前找到的最大值(max)和最小值(min)。这里是一个简单的例子:
```c
#include <stdio.h>
// 定义函数,传入数组首地址、元素个数和初始最大值和最小值(假设第一个元素为初始值)
void findMinMax(int *arr, int n, int *max, int *min) {
// 基线条件:如果只有一个元素,直接返回该元素作为最大值和最小值
if (n == 1) {
*max = *arr;
*min = *arr;
return;
}
// 如果第二个元素大于最大值,更新最大值
if (arr[1] > *max) {
*max = arr[1];
}
// 如果第二个元素小于最小值,更新最小值
if (arr[1] < *min) {
*min = arr[1];
}
// 递归处理剩余元素,注意减去1,因为我们已经检查了前两个元素
findMinMax(arr + 2, n - 1, max, min);
}
// 主函数测试
int main() {
int arr[] = {5, 2, 9, 1, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int max_val, min_val;
findMinMax(arr, n, &max_val, &min_val);
printf("最大值: %d, 最小值: %d\n", max_val, min_val);
return 0;
}
```
阅读全文