【发布时间】:2017-12-07 18:24:23
【问题描述】:
我想创建一个打印出 fib 数字的函数。但我无法修复此错误。接下来从初始化开始始终保持不变。我是 Cpp 的初学者。
#include "stdafx.h"
#include <math.h>
#include <iostream>
int fib(int &n)
{
int first = 0, second = 1, next{};
for (int i = 0; i <= n; i++) {
if (i <= 1) {
int next = i;
}
else
{
int next = first + second;
first = second;
second = next;
}
std::cout << next << std::endl;
}
return next;
}
int main()
{
int stelle;
std::cout << "Bitte geben Sie die Stelle der Fibonacci Folge ein die Sie erhalten möchten" << std::endl;
std::cin >> stelle;
fib(stelle);
std::cout << "Tastedrücken zum Beenden";
int var;
std::cin >> var;
return 0;
}
感谢您的帮助
【问题讨论】:
-
你能提供错误吗?
-
您的
i始终以0开头,这意味着它始终<= 1这意味着它始终 输入您的第一个@987654325 @ 其中包含return next。您的for循环在第一次迭代时总是命中return next,无论您的函数的输入如何,它都不可能走得更远。 -
你怎么知道它返回了什么?您没有捕获返回值。
-
如果您希望
for继续进行以下迭代,请不要将return放入循环中。 -
通过使参数成为引用,您已禁止某人调用
fib(5)。