第3关:利用指针方法求数组的最大值和最小值
时间: 2023-12-30 07:04:46 浏览: 222
好的,这是一个比较基础的问题,可以通过指针方法来实现。以下是实现的代码:
```c
#include <stdio.h>
void findMinMax(int arr[], int len, int *max, int *min) {
*max = *min = arr[0]; // 初始化最大值和最小值为数组的第一个元素
for (int i = 1; i < len; i++) {
if (arr[i] > *max) {
*max = arr[i]; // 更新最大值
}
if (arr[i] < *min) {
*min = arr[i]; // 更新最小值
}
}
}
int main() {
int arr[] = {2, 8, 1, 44, 19, 6};
int len = sizeof(arr) / sizeof(arr[0]);
int max, min;
findMinMax(arr, len, &max, &min);
printf("The maximum value in the array is: %d\n", max);
printf("The minimum value in the array is: %d\n", min);
return 0;
}
```
在这个程序中,我们首先定义了一个 `findMinMax` 函数,它接受一个整数数组、数组长度、以及两个指向整数的指针 `max` 和 `min`。在函数中,我们通过遍历整个数组来查找最大值和最小值,并将它们存储到指针所指向的变量中。
在 `main` 函数中,我们定义了一个整数数组 `arr`,并计算出它的长度。然后我们定义了两个变量 `max` 和 `min`,它们将用于存储最大值和最小值。最后,我们调用 `findMinMax` 函数,并将 `max` 和 `min` 变量的地址作为参数传递给它。最终,我们打印出最大值和最小值。
阅读全文