c - 如何制作斐波那契方程? (关于未初始化变量的错误)

标签 c

#include<stdio.h>

int main(void)
{
    int a, b, c, n;

    printf("What  Fibonacci number would you like?:");
    scanf("%d", &n);

    if (n == 0 || n == 1)
        return printf("%d", n);
    else
    for (c = 0; c < n; c++)
    {
        c = a + b;
        a = b;
        b = c;
    }
    printf("%d ", c);

return 0;

我制作了这个使用斐波那契方程的程序。但是我在编译过程中遇到以下错误:

Error   1   error C4700: uninitialized local variable 'a' used  d:\computer programming c++\20150923\20150923\20150923-1.c  15  1   20150923
Error   2   error C4700: uninitialized local variable 'b' used  d:\computer programming c++\20150923\20150923\20150923-1.c  15  1   20150923

我该如何解决??

最佳答案

在代码中更改 int a, b, c, n;

int a = 0, b = 1, c, n; /*Here you initialize the variables a to zero and b to one*/

您正在尝试访问变量 ab 而未对其进行初始化。由于它们是局部变量,因此它们包含垃圾值。

当执行这一行c = a + b;时,ab的值是垃圾值,可能会改变代码行为显然会导致未定义的行为。

关于c - 如何制作斐波那契方程? (关于未初始化变量的错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723757/

相关文章:

c++ - 将通用引用转换为可调用的 void 指针,反之亦然

c - 从类型 'char[50]' 分配给类型 'char *' 时,类型不兼容

c - 可选 C11 Annex K 函数的手册页

c - C 中 char 数组成员的默认值是多少?

c - 将两个 128 位整数相乘

c - 将指针从 c 中的函数传回 main

c - c 上的 fgets 错误和字符串声明样式

Java JNI 和省略号困惑

c++ - 将 C 或 C++ 文件作为脚本运行

分数高于 100 时无法显示 "Invalid Score. Please Re-enter"