| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6832 人关注过本帖, 1 人收藏
标题:求4个数中的最大值,用递归调用来实现。
只看楼主 加入收藏
大学的守望者
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2011-4-16
结帖率:33.33%
收藏(1)
已结贴  问题点数:10 回复次数:9 
求4个数中的最大值,用递归调用来实现。
求4个数中的最大值,用递归调用来实现。
搜索更多相关主题的帖子: 最大值 
2011-05-12 10:38
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
程序代码:
#include<stdio.h>
int fun(int *a,int n)
{
    int max;
    if(n==1)return a[0];
    max=fun(a+1,n-1);
    if(max<a[0])
        max=a[0];
    return max;
}
int main()
{
    int i,a[4];
    for(i=0;i<4;i++)
        scanf("%d",&a[i]);
    printf("MaxNum is %d \n",fun(a,4));
    return 0;
}

********多贴代码,少说空话*******
2011-05-12 10:59
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:3 
int fun(int *a,int n,int max)
{
if(max<a[4-n])
max=a[4-n];
if(n==1)
return max;
return fun(a,--n,max);
}

main()
{ int i,a[4];
    for(i=0;i<4;i++)
        scanf("%d",&a[i]);
    printf("MaxNum is %d \n",fun(a,4,0));
getch();
}
2011-05-12 11:48
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:2 
程序代码:
int SearchMax(int *a)
{

#include <assert.h>
#define MAX_LEN    4

    static int n = MAX_LEN-1;
    assert(a!=NULL);

    if (!n)
        return *a;
    else {
        *a>*(a+1)?*(a+1)=*a:0; 
        --n;
        return SearchMax(a+1);
    }
}

技术问题,请不要以短消息方式提问
2011-05-12 14:45
大学的守望者
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2011-4-16
收藏
得分:0 
先谢谢大家了,可是我还没学过指针,能不用指针实现吗
2011-05-13 20:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
为了实现 函数的"双向值传递"你学要用指针

                                         
===========深入<----------------->浅出============
2011-05-13 20:14
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
程序代码:
#include <stdio.h>
int fun(int a[],int n,int dep)
{
    int i = 0;
    for(i = 0;i<dep;i++)
        printf("  ");
    for(i = 0;i<n;i++)
        printf("%d ",a[i]);
    printf("\n");
    int max = 0;

    if(1 == n)
        return a[0];
    max = fun(a+1,n-1,dep+1);

    if(a[0] > max)
        max = a[0];
    return max;
}
main()
{
    int a[4] = {4,3,2,1};
    printf("%d\n",fun(a,4,0));
} 
还有 楼主要知道递归是很浪费存储空间的  运行我修改的二楼的程序 你就看到了递归的深度

                                         
===========深入<----------------->浅出============
2011-05-13 20:29
大学的守望者
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2011-4-16
收藏
得分:0 
5楼的版主,抱歉,你的分不知道怎么给不了。
2011-05-15 10:47
H1405
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-5-14
收藏
得分:0 
如何指出最大值的位置
2015-05-14 09:21
heqingjian
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-5-18
收藏
得分:0 
回复 2楼 ppfly
max=fun(a+1,n-1);
    我想问下这里的a+1怎么理解啊 不懂
2015-05-18 23:34
快速回复:求4个数中的最大值,用递归调用来实现。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019853 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved