24小时热门版块排行榜    

查看: 475  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

kitty1406

银虫 (小有名气)

[求助] C语言求助

#include
long fib(int n)
{if(n==1||n==2)
   return 1;
else
   {fib(n)=fib(n-1);
    fib(n-1)=fib(n-2);
    fib(n)=fib(n)+fib(n-1);
    return fib(n);
    }
}
main()
{long r;
int n;
scanf("%ld",&n);
r=fib(n);
printf("fib(%d)=% ld",n,r);getch();
}
这个程序错在哪里啦?运行不了
题目是:1.        编程实现教材P121习题4,其中Fibnacci数列fib(n)的定义为:
1,,n=1或n=2
fib(n)=fib(n-1)+fib(n-2),n>2
用迭代法求fib(n)
回复此楼

» 猜你喜欢

不辱使命
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1162886107

铁虫 (小有名气)

【答案】应助回帖

你这种写法不对,不能直接用函数返回值接收函数返回值,常量是不能被赋值的,你用一个新的变量例如f,将代码“else
   {fib(n)=fib(n-1);
    fib(n-1)=fib(n-2);
    fib(n)=fib(n)+fib(n-1);
    return fib(n);
    }

直接改为“f=fib(n-1)+fib(n-2);

再返回f,或者直接像楼上那样,直接返回。
5楼2012-11-06 17:23:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

1162886107

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
你这个首先主函数就没有返回值,这是一个错误。你最好把错误反馈信息贴上来,不然不好说的!
2楼2012-11-05 17:50:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kitty1406

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 1162886107 at 2012-11-05 17:50:07
你这个首先主函数就没有返回值,这是一个错误。你最好把错误反馈信息贴上来,不然不好说的!

需要逻辑O或非O在fib函数中 错误提示是这个
不辱使命
3楼2012-11-05 23:23:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aresowen

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
long fib(int n)
{if(n==1||n==2)
   return 1;
else return fib(n-1)+fib(n-2);   }
4楼2012-11-05 23:55:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见