c语言用递归求数组的最大值

代码:
#include"stdio.h"
int dmax(int a[],int first,int n)
{
if(n==10){return first;}
if(a[first]<a[n])first=n;
n++;
dmax(a,first,n);
}
main()
{
int a[10]={1,2,5,4,7,8,9,6,3,20};
int f=a[0];
printf("%d",a[dmax(a,f,0)]);
}
不知道为什么运行结果总是不对,求大神帮我看看。

#include <stdio.h>
int dmax(int a[],int first,int n)
{
    if(n==10){
        return first;
    }
    if (a[first] < a[n]) {
        first = n;
    }
    n++;
    return dmax(a,first,n);//要加return
}

int main()
{
    int a[10]={1,2,5,4,7,8,9,6,3,20};
    int f=0; //f代表下标,所以不是a[0]而是0
    printf("%d\n",a[dmax(a,f,0)]);
    return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答