c语言求数组中的最大元素和最小元素
时间: 2024-12-13 15:26:02 浏览: 13
在C语言中,寻找数组中的最大元素和最小元素通常涉及到遍历整个数组的过程。以下是两种常见的方法:
1. **遍历法**:
- 使用两个变量`max`和`min`分别初始化为数组的第一个元素,然后依次遍历数组中的每个元素。
```c
int arr[] = {5, 2, 8, 1, 9};
int max = arr[0], min = arr[0];
for (int i = 1; i < sizeof(arr) / sizeof(arr[0]); i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
printf("Max element is %d and Min element is %d\n", max, min);
```
2. **递归法**(适用于较小规模数组,效率较低):
可以通过比较当前元素和已知的最大值、最小值来进行更新,然后对剩余部分递归调用,直到数组只剩下一个元素。
```c
int findMinMax(int arr[], int start, int end, int* max, int* min) {
if (start == end) {
*max = *min = arr[start];
return 0;
} else {
if (arr[start] > arr[end]) {
(*max, *min) = (arr[start], arr[end]);
} else {
(*max, *min) = (arr[end], arr[start]);
}
return findMinMax(arr, start + 1, end - 1, max, min);
}
}
// 调用函数
int arr[] = {5, 2, 8, 1, 9};
int max, min;
findMinMax(arr, 0, sizeof(arr) - 1, &max, &min);
printf("Max element is %d and Min element is %d\n", max, min);
```
阅读全文