C语言如何找到数组中的最大值、最小值以及它们对应的下标?
时间: 2024-12-12 14:19:42 浏览: 16
在C语言中,找到数组中的最大值和最小值以及它们的下标可以采用几种方法:
1. **遍历法**:
- 初始化两个变量 `max_value` 和 `min_value` 为数组的第一个元素,同时记录下标 `max_index` 和 `min_index` 也设为0。
- 遍历整个数组,如果当前元素大于 `max_value`,就更新 `max_value` 和 `max_index`;如果小于 `min_value`,则更新 `min_value` 和 `min_index`。
- 遍历结束后,`max_value` 和 `min_value` 就分别是数组的最大值和最小值,`max_index` 和 `min_index` 分别是它们的位置。
```c
#include <stdio.h>
int findMinMax(int arr[], int n) {
int max_value = arr[0], min_value = arr[0], max_index = 0, min_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > max_value) {
max_value = arr[i];
max_index = i;
}
else if (arr[i] < min_value) {
min_value = arr[i];
min_index = i;
}
}
return max_value, min_value, max_index, min_index;
}
int main() {
int array[] = {5, 2, 9, 1, 7};
int n = sizeof(array) / sizeof(array[0]);
int max, min, max_index, min_index;
max, min, max_index, min_index = findMinMax(array, n);
printf("Max value is %d at index %d\n", max, max_index);
printf("Min value is %d at index %d\n", min, min_index);
return 0;
}
```
阅读全文