#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;
}
为什么我不能用这种方式打印整个Fibonacci系列数组?如何从函数返回一个数组并循环遍历它?
你看到的问题是什么?编译器错误?如果是这样,哪些?意外的结果?如果是这样,你期望得到什么结果,你会得到什么? – sth 2011-05-08 11:04:53
好吧,从哪里开始...首先,它是什么意思“不能” - 会发生什么?另外,在你的代码中有一些问题:1)你不需要在main中分配数组 - 当你立即覆盖指针时它会导致内存泄漏; 2)'fib()'中的delete ar'语句永远不会执行,因为它是在返回后执行的,但是如果它丢失了刚刚计算的数据的位置 – davka 2011-05-08 11:08:32
没有错误,但是我没有得到该系列。你可以在你的编译器上检查它吗?我正在使用gcc。 – 2011-05-08 11:17:50