c语言通过fun计算并返回数组的最大值的位置。在主函数中输出最大值及位置利用指针
时间: 2024-01-21 21:18:49 浏览: 101
以下是一种可能的实现方式:
```c
#include <stdio.h>
int *find_max(int arr[], int size) {
int max = arr[0];
int max_index = 0;
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
return &arr[max_index];
}
int main() {
int arr[] = {5, 2, 7, 1, 9, 3};
int size = sizeof(arr) / sizeof(arr[0]);
int *max_ptr = find_max(arr, size);
printf("The maximum value is %d at position %ld.\n", *max_ptr, max_ptr - arr);
return 0;
}
```
在 `find_max` 函数中,我们使用一个循环来遍历数组,找到最大值及其位置。为了返回位置,我们使用了指向数组元素的指针。在主函数中,我们调用 `find_max` 函数来获取最大值及其位置,然后使用指针运算来计算出位置在数组中的下标,并输出结果。注意,这里使用 `%ld` 格式符来输出指针的差值,因为 `max_ptr - arr` 是一个长整型数值。
阅读全文