c语言中从众多数中求最大值和最小值
时间: 2024-10-25 12:09:31 浏览: 15
c语言程序找出其中的最大值和最小值问题
在C语言中,你可以使用循环结构和条件判断来找出一组数中的最大值和最小值。这里有两种常见的方法:
1. **遍历法**:
- 初始化两个变量,`max` 和 `min` 分别存储当前找到的最大值和最小值,假设它们都是数组的第一个元素。
- 使用for或while循环遍历数组,每次迭代时,检查当前元素是否大于`max`,如果是,则更新`max`;如果小于`min`,则更新`min`。
- 循环结束后,`max` 就是最大的数,`min` 是最小的数。
```c
#include <stdio.h>
int findMax(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max)
max = arr[i];
}
return max;
}
int findMin(int arr[], int n) {
int min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min)
min = arr[i];
}
return min;
}
int main() {
int array[] = {5, 8, 2, 9, 1};
int size = sizeof(array) / sizeof(array[0]);
int max = findMax(array, size);
int min = findMin(array, size);
printf("最大值是:%d\n", max);
printf("最小值是:%d\n", min);
return 0;
}
```
2. **递归法**(虽然不是标准做法,但可以作为一种教学示例):
如果数组只有一个元素,那么这个元素就是最大值也是最小值。如果有多个元素,可以先比较第一个和第二个,然后将较大的那个值与剩余部分继续比较,直到找到最大值。类似地,寻找最小值。
```c
// 递归版本,这里仅做演示,实际应用不太常见
int findMaxRec(int arr[], int low, int high) {
if (low == high) // 只有一个元素的情况
return arr[low];
else if (arr[low] > arr[high]) // 交换位置
return findMaxRec(arr, high + 1, low - 1);
else
return findMaxRec(arr, low + 1, high);
}
// ...同理找min
```
阅读全文