这怎么做啊,C语言,崩溃了

2.一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9。求一维数组a中的最大 元素及其下标。程序的输出应为:The maxis:34,position is:7。要求:求 最大元素位置用函数实现,在main函数中调用该函数。

以下是用函数实现求一维数组中最大元素及其下标的C语言程序:

#include <stdio.h>

void findMaxElement(int arr[], int size, int* maxElement, int* maxIndex) {
    *maxElement = arr[0];
    *maxIndex = 0;

    for (int i = 1; i < size; i++) {
        if (arr[i] > *maxElement) {
            *maxElement = arr[i];
            *maxIndex = i;
        }
    }
}

int main() {
    int arr[] = {1, 4, 2, 7, 3, 12, 5, 34, 5, 9};
    int size = sizeof(arr) / sizeof(arr[0]);

    int maxElement, maxIndex;
    findMaxElement(arr, size, &maxElement, &maxIndex);

    printf("The max element: %d, position is: %d\n", maxElement, maxIndex);

    return 0;
}

在上述程序中,findMaxElement 函数用于查找一维数组中的最大元素及其下标。main 函数中调用该函数,并将最大元素和下标保存在 maxElementmaxIndex 变量中,最后输出结果。

程序输出为:The max element: 34, position is: 7。这是数组中的最大元素及其下标的结果。

参考如下:

#include <stdio.h>

void max1(int a[], int len, int *max, int *maxI) 
{
    int i, maxIndex = 0;
    for (i = 0; i < len; i++)
    {
        if (a[maxIndex] < a[i]) 
            maxIndex = i;
    }
    *max = a[maxIndex];
    *maxI = maxIndex;
}

int main () 
{
    int a[10] = {1,4,2,7,3,12,5,34,5,9};
    int len = sizeof(a) / sizeof(a[0]);
    int max;
    int maxI;

    max1(a, len, &max, &maxI);

    printf("The maxis: %d, position is: %d", max, maxI);

    return 0;
}


供参考:

#include <stdio.h>
int findmax(int a[], int n)
{
    int i, maxi;
    for (i = 0, maxi = 0; i < n; i++)
        if (a[i] > a[maxi])
            maxi = i;
    return maxi;
}
int main()
{
    int a[] ={1,4,2,7,3,12,5,34,5,9}, pos;
    pos = findmax(a, sizeof(a)/sizeof(int));
    printf("The maxis:%d,position is:%d",a[pos], pos);

    return 0;
}