#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