鱼C论坛

 找回密码
 立即注册
查看: 3276|回复: 0

C视频36 函数嵌套调用的问题!

 关闭 [复制链接]
发表于 2011-8-22 09:53:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ZPCG 于 2011-8-22 10:33 编辑

下面这个程序,算出来S=0,我怎么查都查不出问题,请大家帮我看一下.谢谢了!

  1. /*计算s=(a的平方的阶乘)+(b的平方的阶乘).......,其中a,b,......为键盘输入的值*/
  2. #include <stdio.h>
  3. void main()
  4. {
  5. long square(long n);
  6. long factorial(long m);

  7. long s = 0, n;
  8. printf("input: \n");

  9. while(scanf("%d", &n) != EOF)
  10. {
  11. s = s + square(n);
  12. }
  13. printf("s= %d\n", s);
  14. }

  15. long square(long n)
  16. {
  17. long factorial(long m);
  18. long p;
  19. long m;
  20. m = n * n;
  21. p = factorial(m);
  22. return p;
  23. }

  24. long factorial(long m)
  25. {
  26. long q = m;
  27. while(m--)
  28. {
  29. q = q * m;
  30. }
  31. return q;
  32. }
复制代码

自己查出来了,关键问题就是在定义函数factorial()的时候,while(m--)要改成while(--m),原来那个会乘以0,使其返回值永远是0.
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-7 21:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表