It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。
6年前关闭。
有人可以提供以下有关我的代码的反馈吗?我已经用其他语言多次制作了斐波那契数列,但是由于某些奇怪的原因,当我用C编写代码时,它无法打印正确的数列。我似乎无法弄清楚我做错了什么。
我确定您打算在这里执行
因为您说过您已经用其他语言实现了该系列,所以以
6年前关闭。
有人可以提供以下有关我的代码的反馈吗?我已经用其他语言多次制作了斐波那契数列,但是由于某些奇怪的原因,当我用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;
}
最佳答案
恐怕您需要真正清理代码。以下在C语言中绝对是错误的。
(int i = 0; i < n; i++)
我确定您打算在这里执行
for
循环。但是谁知道您的想法呢?然后在else
的if
块中加上了一个单独的Fibonacci()
。您的程序中存在很多错误,因此,让我给您一个程序,该程序根据用户在该系列中的数字创建斐波那契数列想要(从键盘输入选择)。请尝试理解该程序。这很简单,因为Fibonacci系列背后的逻辑很简单,这显然是您对C语言很陌生。#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,l,x=1,y=1,z;
printf("Enter how many Fibonacci numbers you want\n");
scanf("%d",&l);
printf("The Fibonacci series of %d numbers is\n",l);
if(l==1)
{
printf("1");
exit(0);
}
if(l==2)
{printf("1+1");
exit(0);
}
printf("1+1+");
for(i=3;i<=l;i++)
{
z=x+y;
printf("%d",z);
x=y;
y=z;
if((i+1)<=l) printf("+");
}
}
因为您说过您已经用其他语言实现了该系列,所以以
0,1,1,2,3,5.....
开头该系列不会有问题,我的程序将1,1,2,3,5...
初始化为x
和y
到1
而不是初始化x
作为0
。调整代码以实现它。09-04 17:00