| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1644 人关注过本帖
标题:函数的嵌套问题
只看楼主 加入收藏
C爱好着
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2008-10-31
收藏
 问题点数:0 回复次数:6 
函数的嵌套问题
计算s=2平方!+3平方!

本题可编写两个函数,一个是用来计算平方值的函数f1,另一个是用来计算阶乘值的函数f2。主函数先调f1计算出平方值,再在f1中以平方值为实参,调用 f2计算其阶乘值,然后返回f1,再返回主函数,在循环程序中计算累加和。

long f1(int p)

{

    int k;

    long r;

    long f2(int);

    k=p*p;

    r=f2(k);                //* 这句什么意思

    return r;

}

long f2(int q)

{

    long c=1;

    int i;

    for(i=1;i<=q;i++)

      c=c*i;
        //*  红字这段。都不太明白

    return c;

}

main()

{

    int i;

    long s=0;

    for (i=2;i<=3;i++)

      s=s+f1(i);           //*还有这句。都帮我讲讲好吗?

    printf("\ns=%ld\n",s);

}
搜索更多相关主题的帖子: 嵌套 函数 
2008-11-22 10:34
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
r=f2(k);这一句的意思的话不好说.
反正函数是可以相互调用的,比如printf("%d",sqrt(16));这就是在printf函数中调用了sqrt函数
而r=f2(k);就是说在函数内部里面调用了f2这个函数,当f2执行完之后,又会继续执行r=f2(k)以下的语句
红色的那一段是阶乘的功能,定义一个c来储存总和值,然后i的话就是每一个阶乘的值,比如说3的阶乘,那i就一次等于第一次循环i=1,c*=i.c*=i就是c=c*i;c的值肯定不能等于0,因为任何数乘以0都是0,所以在前面long c=1;然后第二次循环i=2,c*=2然后依次下去,最后
c=6
你这就是从1开始,一直到形参q为止都乘一次c.

最后一部分和前一个功能差不多,但这里是递增,所以long s=0,从0开始加,加上每一次平方的阶乘.

我只能解释道这个样子了.

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 12:01
C爱好着
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2008-10-31
收藏
得分:0 
谢谢 zqy110007
但还是有点模糊,r=f2(k)..这个k为什么括起来啊
还有q是形参。那实参是那个啊
希望在帮忙讲下
2008-11-22 13:08
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
这跟函数有关系啦,只要是函数就一定有括号,但是括号里面可以什么都不写!
f2是你的程序里的一个自定义函数,你是这么写的long f2(int q)
也就是说返回值为long,然后你输入的k是实参,它将把自己的内容传给f2函数中的形参q
总之..q是形参,k是实参
形参和实参很好理解,形参,定义函数的时候的参数就是形参,定义是前面需要一个类型,如:int,所以可以这么说,只要是在函数中的参数有类型的就是形参,反之..没有类型的,比如:f2(k)就是一个k而不是int p,它就是实参..
我是这么理解的
也就是说定义的函数参数就是形参,调用函数时写的参数就是实参

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 13:45
dubukuangye
Rank: 1
等 级:新手上路
威 望:2
帖 子:155
专家分:3
注 册:2008-11-11
收藏
得分:0 
调用函数就是这个格式啊,括号里面是实参。那个实参就是k啊

与其离开她为了过的更好,不如抓住她,自己努力让她过的更好
2008-11-22 13:46
C爱好着
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2008-10-31
收藏
得分:0 
有点明白了。我在看看。。
现谢谢啦
2008-11-22 13:51
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
呵呵,反正我认为:
自定义函数时写的参数就是形参,调用函数时写的参数就是实参

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 13:55
快速回复:函数的嵌套问题
数据加载中...
 
   



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

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