C语言查找数组中的最大值和最小值
时间: 2024-08-13 14:06:03 浏览: 72
在C语言中,查找数组中的最大值和最小值可以通过遍历数组的方式来实现。这里提供两种常见的方法:
1. **遍历法**:
- **对于最大值**:
```c
int arr[] = {5, 2, 9, 1, 7};
int n = sizeof(arr) / sizeof(arr);
int max = arr; // 假设第一个元素为初始最大值
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
printf("最大值是: %d", max);
```
- **对于最小值**:
使用类似的方法,只需将比较条件改为 `arr[i] < min` 即可。
2. **使用指针法**:
另一种方法是利用指针遍历,这样代码更简洁一些:
```c
#include <stdio.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr))
int findMinMax(int arr[], int n, int *min, int *max) {
*min = arr;
*max = arr;
for (int i = 1; i < n; i++) {
if (arr[i] < *min) {
*min = arr[i];
} else if (arr[i] > *max) {
*max = arr[i];
}
}
return *min, *max;
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int min, max;
findMinMax(arr, ARRAY_SIZE(arr), &min, &max);
printf("最小值是: %d, 最大值是: %d", min, max);
return 0;
}
```
在这两种方法中,你需要根据实际需求选择。如果你只需要一次性找到最大值和最小值,遍历法就足够了;如果需要在程序中多次使用这些值,指针法可能更合适,因为它返回结果而不是直接修改输入数组。
阅读全文