利用指针找最大值最小值
时间: 2023-11-02 16:05:07 浏览: 90
可以通过遍历数组来寻找最大值最小值,同时记录最大值和最小值的下标,最后返回这两个下标对应的值即可。
以下是一个示例代码:
```c
#include <stdio.h>
void find_min_max(int *arr, int size, int *min_idx, int *max_idx) {
*min_idx = 0; // 初始化最小值和最大值下标
*max_idx = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < arr[*min_idx]) { // 如果当前元素小于最小值
*min_idx = i; // 更新最小值下标
}
if (arr[i] > arr[*max_idx]) { // 如果当前元素大于最大值
*max_idx = i; // 更新最大值下标
}
}
}
int main() {
int arr[] = {4, 2, 7, 1, 9, 5};
int size = sizeof(arr) / sizeof(int);
int min_idx, max_idx;
find_min_max(arr, size, &min_idx, &max_idx);
printf("最小值是:%d,最大值是:%d\n", arr[min_idx], arr[max_idx]);
return 0;
}
```
在上面的代码中,`find_min_max` 函数接收一个整型数组、数组大小、以及两个指向整型变量的指针,用于存储最小值和最大值的下标。在函数中,我们先初始化最小值和最大值的下标都为 0,然后从数组的第二个元素开始遍历数组,如果当前元素小于最小值,则更新最小值的下标,如果当前元素大于最大值,则更新最大值的下标。最后,函数返回时,通过指针将最小值和最大值的下标传递给调用函数的地方。
在 `main` 函数中,我们定义了一个整型数组,然后调用 `find_min_max` 函数来寻找最小值和最大值的下标,并将这两个下标对应的值打印出来。
阅读全文