标题:函数调用
只看楼主
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
结帖率:100%
已结贴  问题点数:20 回复次数:9 
函数调用
问题如下
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
我的代码
#include<stdio.h>
int main()
{
  int fz(int x);
  int fm(int y);
  int n,i;
  double sum=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
    sum+=(fz(i)/fm(i));
  }
  printf("%.2lf",sum);
  return 0;
}
int fz(int x)
{
  int c;
  if(x==1)
      c=2;
  else
      c=fz(x-1)+fm(x-1);
  return(c);
}
int fm(int y)
{
  int d;
  if(y==1)
      d=1;
  else
      d=fz(y-1);
  return(d);
}
编译没问题,但结果不对,没找到问题所在,求助。。
搜索更多相关主题的帖子: 编写程序 include double return 
2014-07-25 12:47
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:15 
int/int 得到的结果会是神马  绝对不是double

DO IT YOURSELF !
2014-07-25 12:50
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
得分:0 
回复 2 楼 wp231957
up
2014-07-25 12:51
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
刚才没有仔细看

你两个子函数相互调用  那不构成劣行循环了吗

DO IT YOURSELF !
2014-07-25 12:53
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
得分:0 
不会啊,改成double就输出正确结果了
2014-07-25 12:55
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
得分:0 
调用不是有终点么
2014-07-25 12:56
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
得分:0 
以下是引用wp231957在2014-7-25 12:50:18的发言:

int/int 得到的结果会是神马  绝对不是double

秒懂!
2014-07-25 12:56
步向巅峰
Rank: 5Rank: 5
来 自:河南
等 级:贵宾
威 望:17
帖 子:110
专家分:371
注 册:2013-4-26
得分:0 
感觉被lz的代码搞晕了
2014-07-25 12:58
三个人
Rank: 2
等 级:论坛游民
帖 子:54
专家分:40
注 册:2014-7-6
得分:0 
我擦,为啥改完之后vc6.0能编译通过且正常运行,gcc编译就显示错误!!!

./source.c: In function 'fz':
./source.c:22:7: warning: implicit declaration of function 'fm' [-Wimplicit-function-declaration]
./source.c:5:10: note: previous declaration of 'fm' was here
./source.c:22:17: error: incompatible implicit declaration of function 'fm'
./source.c:5:10: note: previous implicit declaration of 'fm' was here
2014-07-25 13:08
Eagle24
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-7-25
得分:0 
“/”结果取整,你“/”左右都是int类型的,应该是因为这方面导致的结果不对吧。
2014-07-25 18:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-434385-1-1.html




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

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