c语言找最大值和最小值并输出它们的位置
时间: 2024-10-12 13:05:40 浏览: 46
在 C 语言中,你可以使用循环遍历数组的方式来找到数组中的最大值和最小值,同时记录下它们的位置。这里是一个简单的示例:
```c
#include <stdio.h>
void findMinMax(int arr[], int size, int* min_index, int* max_index) {
*min_index = 0; // 初始化最小值索引为0
*max_index = 0; // 同理初始化最大值索引为0
int min_val = arr[0]; // 初始化最小值为第一个元素
int max_val = arr[0]; // 初始化最大值为第一个元素
for (int i = 1; i < size; i++) {
if (arr[i] < min_val) { // 如果当前元素小于最小值
min_val = arr[i];
*min_index = i; // 更新最小值及其位置
} else if (arr[i] > max_val) { // 同理,如果当前元素大于最大值
max_val = arr[i];
*max_index = i; // 更新最大值及其位置
}
}
printf("最小值: %d, 位置: %d\n", min_val, *min_index);
printf("最大值: %d, 位置: %d\n", max_val, *max_index);
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int size = sizeof(arr) / sizeof(arr[0]);
int min_index, max_index;
findMinMax(arr, size, &min_index, &max_index); // 调用函数并传递地址
return 0;
}
```
这个程序首先初始化最小值和最大值为数组的第一个元素,然后遍历整个数组,每次遇到比当前最小值小或比当前最大值大的元素就更新这两个值以及它们的位置。最后,在 `main` 函数中调用 `findMinMax` 并打印结果。
阅读全文