gpt4 book ai didi

c - C 中的斐波那契数列 - 直到给定数字的数字序列

转载 作者:行者123 更新时间:2023-11-30 21:31:11 24 4
gpt4 key购买 nike

有人可以对下面给出的我的代码提供反馈吗?我已经用其他语言多次完成了斐波那契数列,但由于某些奇怪的原因,当我用 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 循环。但是谁知道您的想法是什么?然后你在Fibonacci()if block 中包含了一个单独的else。你的程序中有很多错误,所以让我告诉你一个根据用户想要的系列中有多少个数字(从键盘输入的选择)创建斐波那契数列的程序。请尝试理解这个程序。它非常简单,因为斐波那契数列背后的逻辑本身很简单。只是很明显您对 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... 初始化为 xy1 > 而不是将 x 初始化为 0。调整代码来实现它。

关于c - C 中的斐波那契数列 - 直到给定数字的数字序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com