【问题标题】:Printing Fibonacci numbers up to n in C在 C 中打印最多 n 个斐波那契数
【发布时间】:2020-03-01 23:58:18
【问题描述】:

以下代码使用用户定义函数来打印用户选择的斐波那契数。唯一的问题是输出包括前 n 个斐波那契数,后跟一个零。 (例如 1,1,2,3,5,8,0)我怎样才能摆脱零?

#include <stdio.h>
int fibonacci(int a);
int main()
{
    int j, number;
    printf("Enter the number of terms: ");
    scanf("%d", &number);
    printf("Fibonacci Series: ");
    j = fibonacci(number);
    printf("%d", j);
}

int fibonacci (int a)
{
    int num1 = 1, num2 = 1, k, i;
    for (i = 1; i <= a; ++i)
    {
        printf("%d, ", num1);
        k = num1 + num2;
        num1 = num2;
        num2 = k;
    }
    return 0;
}

【问题讨论】:

  • 您从 fibonnaci 调用中将零返回给 j,然后打印 0。删除 printf 调用并摆脱它。或者更好,不要返回任何东西,因为没关系
  • 我返回了 num1,这产生了正确的结果。哦,好吧。
  • 你真的明白自己在做什么吗?
  • 为什么你的fibonacci 函数会返回一个值?似乎您不需要返回任何内容,但您不知道“返回类型”。
  • 请不要编辑您的问题以包含修复程序,而是回答您自己的问题。这就是这个网站的运作方式。

标签: c fibonacci


【解决方案1】:

我了解到,当使用 main 以外的函数时,我们应该返回一些东西。

如果您了解了这一点,则应该寻找更好的学习资源。你可以这么写:

void fibonacci(int a)
{
    int num1 = 1, num2 = 1, k, i;
    for (i = 1; i <= a; ++i)
    {
        printf("%d, ", num1);
        k = num1 + num2;
        num1 = num2;
        num2 = k;
    }
}

【讨论】:

    猜你喜欢
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2017-06-12
    • 1970-01-01
    • 2016-05-12
    • 2016-01-21
    • 2022-12-10
    相关资源
    最近更新 更多