c - 斐波那契与扭曲

标签 c

我正在尝试编写一个计算斐波那契的代码,并进行一些小的更改。 迭代次数有限制,有一个目标数,每 i 次迭代该数字除以 2。

不知何故,我的代码无法正常工作。 它仅适用于 lim = 1 在所有其他情况下它不会执行任何操作

有人能看到这个错误吗?

int main()
{
    int i, lim, gen_num, 
        fib1, fib2, next, count = 0, iterations = 0;

    printf("Please enter the desired population\n");
    scanf("%d", &lim);
    printf("Please enter the number of generations alowd\n");
    scanf("%d", &i);
    printf("Please enter the number of generations between each disaster\n");
    scanf("%d", &gen_num);
    fib1 = 0;
    fib2 = 1;
    while (fib2 < lim);
    {
        if (iterations <= i)
        {
            next = fib1 + fib2;
            fib1 = fib2;
            fib2 = next;
            count += 1;
            iterations += 1;
            if (count%gen_num == 0)
            {
                fib2 /= 2;
            }
            printf("%d ", fib2);
        }
        else
        {
            printf("Number of iterations exceeded\n");
            return 0;
        }
    }
    return 0;   
}

最佳答案

这一行:

while (fib2 < lim);
fib2小于lim时,

是一个无限循环。末尾的分号意味着你有一个空语句作为循环体,它相当于:

while (fib < lim) {
}

关于c - 斐波那契与扭曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703327/

相关文章:

c - 如何将字符串转换为枚举数?

c - gcc 基本 C 程序无法编译 : File missing in Ubuntu

c - 如何使用 GNU make 将多个不相关的源文件编译为多个不相关的目标文件?

c - 套接字编程(sys/socket.h)

c - 我在人脸识别系统中使用了“嵌套的if”语句。显示的代码中的“嵌套”是否正确?

c - 测试算法速度。如何?

c - K&R代码示例混淆: copy string

c - 同步ReadFile读取的字节数

C语言编程函数薪水

c - 指针魔术有时会导致 SIGSEGV