我正在研究一个简单的函数,给定一个输入n,返回n个Fibonacci的数字.
int main(){ int n = 0; int counter = 1; int f1, f2, f3 = 1; printf("Insert an integer bigger than 0:\n"); scanf("%i", &n); printf("%i", f1); while(counter <= n){ f3 = f1 + f2; printf("%i\n", f3); f1 = f2; f2 = f3; counter = counter + 1; } return 0; }
令人惊讶的是,每次运行程序时,该函数都会返回不同的结果.此外,这些数字远远大于/小于任何可能的结果.
最有可能的是,我遗漏了一些明显的东西,但我无法解释这种行为.
这一行:
int f1, f2, f3 = 1;
只初始化f3
为1,它不初始化f1
和f2
.您应该使用此代替:
int f1 = 1, f2 = 1, f3 = 1;
初始化所有三个.