【发布时间】:2013-04-24 13:34:48
【问题描述】:
有人可以就我下面给出的代码提供反馈吗?我已经用其他语言多次完成了斐波那契数列,但由于某种奇怪的原因,当我用 C 编写代码时,它不会打印出正确的数列。我似乎无法弄清楚我做错了什么。
#include <stdio.h>
int fibonacci (int n)
{
(int i = 0; i < n; i++)
{
if (i == 0 || i == 1)
{
printf("%d,", i);
else
{
printf("%d,", ((i-1) + (i-2)));
}
}
}
int main ()
{
int (*fnctPtr)(int number);
fnctPtr = &fibonacci;
fnctPtr(9);
return 0;
}
【问题讨论】:
-
"for" 语句丢失?
-
你程序里的逻辑全错了,我觉得编译不出来。修复程序以使其编译,查看输出,并查看是否可以通过逐步执行您编写的函数来推断输出错误的原因。请注意,斐波那契的传统定义使用递归关系。
-
非常感谢。我对代码做了更多的工作,并且阅读了更多关于 C 编码的内容。我想我现在已经掌握了要点。