【发布时间】:2020-03-03 16:01:10
【问题描述】:
我在打印带有斐波那契数列的矩阵时遇到问题。 当我启动程序时,它会打印一个带有整数和其余零的序列。我想要一个北方,能够得出结论。
连续打印功能:
void printArray(int _A[], int _sz)
{
_A = new int(_sz);
cout << ">>> [ ";
for (int i = 0; i <= _sz; i++)
{
cout << _A[i] << " ";
}
cout << " ]\n";
}
计算序列的函数:
int fib(int _limit, int *_A)
{
int count = 0;
int fib0 = 1;
int fib1 = 1;
int fib2 = 0;
while (fib2 < _limit)
{
fib2 = fib0 + fib1;
count++;
fib0 = fib1;
fib1 = fib2;
}
_A = new int(count);
for (int i = 0; i < count; i++)
{
cout << _A[i] << " ";
}
return count;
}
主要:
int main()
{
int L;
int *A = nullptr;
cout << ">>> Press number: "
cin >> L;
if (L >= 0)
{
auto sz = fib(L, A);
cout << ">>> The Fibonacci series up to " << L << " is: \n";
printArray(A, sz); .
}
else
cout << ">>> Sorry, only positive integers accepted. Aborting...\n";
}
【问题讨论】:
-
我不明白“我想要一个北方,能够得出结论”这句话是什么意思。
-
当您启动程序时,它应该等待您输入一个数字;)您使用什么输入?你得到什么输出?
-
void printArray(int _A[], int _sz) { _A = new int(_sz);...}为什么?为什么要覆盖参数? -
您将一个从
new返回的指针分配给_A,然后在循环中打印_A[i]时期望看到值。为什么? -
顺便说一句。
new int(_sz)在堆上创建 one, single 新整数,其值为_sz。也许您打算创建一个_sz整数数组 ->new int[_sz]?
标签: c++ fibonacci allocation