请编写一个函数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;
}

posted on 2024-06-12 23:55  wessf  阅读(67)  评论(0)    收藏  举报