请编写一个函数int fun(int *s,int t,int *k),用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中
//请编写一个函数int fun(int *s,int t,int *k),用来求数组的最大元素在数组中的下标并存放在k所指的储存单元中。
#include <stdio.h>
#include <stdlib.h>
int fun(int *s, int t, int *k) {
if (t <= 0 || s == NULL || k == NULL) {
return -1; // 输入参数错误
}
int maxIndex = 0;
int maxElement = s[0];
for (int i = 1; i < t; i++) {
if (s[i] > maxElement) {
maxElement = s[i];
maxIndex = i;
}
}
*k = maxIndex;
return maxIndex;
}
int main() {
int size;
printf("请输入整数数组的大小: ");
scanf("%d", &size);
int *arr = (int *)malloc(size * sizeof(int));
if (arr == NULL) {
printf("内存分配失败\n");
return -1;
}
for (int i = 0; i < size; i++) {
printf("请输入第 %d 个整数: ", i + 1);
scanf("%d", &arr[i]);
}
int idx;
int result = fun(arr, size, &idx);
if (result != -1) {
printf("最大元素的下标是: %d\n", idx);
} else {
printf("输入参数错误或数组为空\n");
}
free(arr);
return 0;
}