#include <iostream>
int* fib(int);
int main()
{
int count;
std::cout<<"enter number up to which fibonacci series is to be printed"<<std::endl;
std::cin>>count;
int *p=new int[count];
p=fib(count);
int i;
for(i<0;i<=count;i++)
std::cout<<p[i]<<std::endl;
return 0;
}
int* fib(int d)
{
int *ar=new int[d];
int p=-1,q=1,r;
int j;
for(j=0;j<=d;j++)
{
r=p+q;
ar[j]=r;
p=q;
q=r;
}
return ar;
delete ar;
}
为什么我无法以这种方式打印整个斐波那契数列?
代码的几个问题
for(i<0;i<=count;i++)
实际上应该是
for(i=0;i<count;i++)
和
for(j=0;j<=d;j++)
必读
for(j=0;j<d;j++)
并删除该行
delete ar;
因为它在 return
语句之后没有任何效果。此外,您可以摆脱实例化
int *p=new int[count];
在 main()
中,因为这也在您的 fib
函数中完成。就目前而言,您泄漏了刚刚分配的内存。
我是一名优秀的程序员,十分优秀!