c语言如何定位数组中最大值最小值的位置
时间: 2024-09-27 18:05:05 浏览: 9
在C语言中,找到数组中最大值和最小值及其位置可以采用线性搜索的方法。这里有两个函数示例,一个是寻找最大值和最大值的索引,另一个是寻找最小值和最小值的索引:
1. 寻找最大值及其索引:
```c
#include <stdio.h>
// 函数声明
int findMax(int arr[], int n, int *maxIndex);
int main() {
int arr[] = {4, 2, 9, 6, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int maxIndex;
int maxValue = findMax(arr, n, &maxIndex);
printf("最大值: %d, 最大值位置: %d\n", maxValue, maxIndex);
return 0;
}
// 定义查找最大值的函数
int findMax(int arr[], int n, int *maxIndex) {
*maxIndex = 0; // 初始化最大值索引为0
for (int i = 1; i < n; i++) {
if (arr[i] > arr[*maxIndex]) {
*maxIndex = i; // 更新最大值索引
}
}
return arr[*maxIndex]; // 返回最大值
}
```
2. 寻找最小值及其索引:
```c
// 修改findMax函数为findMin
int findMin(int arr[], int n, int *minIndex) {
*minIndex = 0; // 初始化最小值索引为0
for (int i = 1; i < n; i++) {
if (arr[i] < arr[*minIndex]) {
*minIndex = i; // 更新最小值索引
}
}
return arr[*minIndex]; // 返回最小值
}
```
在上述代码中,`findMax`和`findMin`函数分别遍历整个数组,比较当前元素与已知的最大值或最小值,如果发现更小或更大的元素,则更新对应的索引。