c语言求长度为n的一维数组的极值,并返回极值所在位置。 输入一个数值n,确定一维数组的长度。接着输入n个整数后,返回其中的最大值以及所在位置,输出结果以空格隔开
时间: 2024-09-21 19:12:16 浏览: 83
在C语言中,给定一维数组的长度`n`,为了寻找最大值及其位置,你可以编写一个名为`find_max_and_index`的函数。下面是一个完整的例子,包括输入、处理和输出:
```c
#include <stdio.h>
// 函数声明
void find_max_and_index(int arr[], int n, int* max_value, int* max_index);
int main() {
int n;
printf("请输入一维数组的长度n:");
scanf("%d", &n);
// 定义数组和位置指针
int arr[n];
int* max_index = malloc(sizeof(int)); // 分配空间存储最大值的位置
// 输入数组元素
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 调用函数找出最大值和位置
find_max_and_index(arr, n, NULL, max_index);
// 输出结果
printf("最大值为:%d,位于索引 %d\n", *max_index, arr[*max_index]);
free(max_index); // 释放内存
return 0;
}
// 寻找最大值及位置的函数
void find_max_and_index(int arr[], int n, int* current_max, int* max_index) {
if (current_max == NULL) { // 初始化第一次查找
*current_max = arr[0];
*max_index = 0;
} else { // 已经找到了一个最大值,继续查找
for (int i = 1; i < n; i++) {
if (arr[i] > *current_max) {
*current_max = arr[i];
*max_index = i;
}
}
}
}
```
在这个程序中,首先通过用户输入获取数组长度和元素,然后调用`find_max_and_index`函数找到最大值和它的位置。最后,在主函数中输出结果。
阅读全文