使用递归查找数组的最大元素

时间:2013-05-29 13:58:48

标签: c

我的代码是这将使用递归从数组中找到最大数字,但它找不到最大数字

#include <stdio.h>

int maximum(int ar[], int n)
{

    if (n == 1) {
        return ar[0];

    } else {
        int max = maximum(ar, n-1);
        printf("Largest element : %d\n", max);
        return 5; // return ar[n-1] > max ? ar[n-1] : max;
    }
}

int main()
{
    int array[5] = {5, 23, 28, 7, 1};
    printf("Maximum element of the array is: %d", maximum(array, 5));
    return 0;
}

2 个答案:

答案 0 :(得分:6)

使用此特定行

return 5; // return ar[n-1] > max ? ar[n-1] : max;

in

if (n == 1) {
        return ar[0];

    } else {
        int max = maximum(ar, n-1);
        printf("Largest element : %d\n", max);
        return 5; // return ar[n-1] > max ? ar[n-1] : max;
    }
}

它总会返回5!

答案 1 :(得分:-4)

#include<stdio.h>
void main()
{
    int pin[10]={2,4,6,34,56,54,34,23,1,10},i,max,k;

    max=pin[0];
    for(i=0;i<10;i++)
    {
        if(pin[i]>=max)
        {
            max=pin[i];
            k=i;
        }
    }
    printf("The max number of the array is: %d and it is in  %d position of the array\n",max,k+1);
}