我写了一个很臭的c++程序,很多错误,求高手改错!

来源:百度知道 编辑:UC知道 时间:2024/06/12 01:28:01
程序的目的是求出斐波那契数列中的第n个数!
我写的程序如下!
水平很菜!
程序写的很臭!
错误连篇!
求高手帮我修改下!
不要改变程序太多!做好就在程序上作修改!
并帮我注明错误的地方和我为什么错了!
谢谢大家了!
高分回报!
程序如下:
#include<iostream>
#define N 100
using namespace std;
//---------------声明斐波那契数的类
class fibnum{
private:
int num;//斐波那契数
static int no;//编号
fibnum *next;//前一个数
fibnum *nnext;//前前一个数
public:
fibnum(int,int,fibnum &,fibnum &);
void mnext(fibnum &,fibnum &);
void print();
};

int fibnum::no=0;

fibnum::fibnum(int i,int j,fibnum k,fibnum n){
num=i;
no=j;
next=k;
nnext=n;
}

void fibnum::mnext(fibnum &a,fibnum &b)
{fibnum tem;
tem.num=a.num+b.num;
(fibnum::no)++;
tem.next=b;
tem.nnext=a;
}

void fibnum::print(){
cout<<num;
}

int main(){
fibnum arr[n]{(1,1,null,null),(1,2,arr[0],null)};
cout<<"你需要知

一个类只保存数据有前后对象指针,这和链表有什么区别?
在我看来还不如直接封装各个函数。像输出第几个数这样的,直接调用成员函数。
也比你这样反复构造对象强。更何况构造的还不对。

其实不必这么复杂的,下面这段程序就可以实现你所要的要求:
#include<iostream>
using namespace std;

main()
{
int n,i,num1=1,num2=1,temp=0;
cout<<"Please input the number N:"<<endl;
cin>>n;
if(n==1||n==2)
{
num1=1;
cout<<"斐波那契数列中的第"<<n<<"个数是:"<<num1<<endl;
}
else
{
for(i=3;i<=n;i++)
{
temp=num2+num1;
num1=num2;
num2=temp;
}
cout<<"斐波那契数列中的第"<<n<<"个数是:"<<temp<<endl;
}
}

斐波那契数列:1 1 2 3 5 8 11 13...

搞不太懂你为什么要用两个这样的指针
fibnum *next;//前一个数
fibnum *nnext;//前前一个数
感觉用函数fac()调用就好了
fac[N];
fac[0]=1;
fac[1]=1;
for(int i=2;i<=N;i++) // 前N个斐波那契数
fac[i]=fac