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

代码:#include"stdio.h"intdmax(inta[],intfirst,intn){if(n==10){returnfirst;}if(a[first]<... 代码:
#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)]);
}
不知道为什么运行结果总是不对,求大神帮我看看。
展开
 我来答
风影美
2017-01-06 · TA获得超过1287个赞
知道大有可为答主
回答量:870
采纳率:100%
帮助的人:506万
展开全部
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式