数组区段的最大最小值指针
时间: 2023-10-09 18:09:21 浏览: 55
要找到数组区段的最大值和最小值,可以使用指针。以下是一个示例代码:
```c
#include <stdio.h>
void findMinMax(int arr[], int n, int* minPtr, int* maxPtr) {
int i;
*minPtr = *maxPtr = arr[0];
for(i=1; i<n; i++) {
if(arr[i] < *minPtr) {
*minPtr = arr[i];
}
if(arr[i] > *maxPtr) {
*maxPtr = arr[i];
}
}
}
int main() {
int arr[] = {1, 5, 3, 8, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int min, max;
int *minPtr = &min, *maxPtr = &max;
findMinMax(arr, n, minPtr, maxPtr);
printf("Min value: %d\n", *minPtr);
printf("Max value: %d\n", *maxPtr);
return 0;
}
```
在这个示例中,我们定义了一个 `findMinMax` 函数,该函数将数组以及其大小作为输入,并使用指针返回区段的最小值和最大值。在 `main` 函数中,我们声明了 `min` 和 `max` 变量,并且使用指针 `minPtr` 和 `maxPtr` 将它们的地址传递给函数 `findMinMax` 。在函数中,我们通过比较数组元素来查找最小值和最大值,并使用指针更新 `min` 和 `max` 的值。最后,我们在 `main` 函数中打印出最小值和最大值。