C++ 杨辉三角的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:06:11
利用动态分配方法实现杨辉三角系数的计算和存储
我自己编的程序。运行的时候就会出错。。希望有高手帮我修改下我的程序。感激不尽~
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>

long fun1(int n) //求阶乘
{
long s;
if(n<0) cout<<"n<0,data error!"<<endl;
else if(n==0||n==1) s=1; //0!=1,1!~1
else s=fun1(n-1)*n;
return s;
}

long fun2(int r,int n) //求系数
{
long t;
if(r<0||r>n) cout<<"data error!"<<endl;
else if(r==0) t=1;
else t=fun1(n)/(fun1(r)*fun1(r));
return t;
}

void main()
{
int n,m,k;
k=0;
long *p;
cout<<"Input n: ";
cin>>n;
m=(n+1)*(n+2)/2; //m为输出数据的总个数
p=new long[m];
if(p==NULL)
{
cout<<"Error,cannot allocate memory!"; //动态分配失败
e

终于把你的程序调试出来了,
不过你写的程序的结构不太好,也难怪,这是我经过调试以后的你看一下:(修改过的地方用#####好号标出)
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>

long fun1(int n) //求阶乘
{
long s;
if(n<0)
cout<<"n<0,data error!"<<endl;
else if(n==0||n==1)
s=1; //0!=1,1!~1
else
s=fun1(n-1)*n;
return s;
}

long fun2(int r,int n) //求系数
{
long t;
if(r<0||r>n)
cout<<"data error!"<<endl;
else if(r==0)
t=1;
else
t=fun1(n)/(fun1(n-r)*fun1(r)); //#####
return t;
}

void main()
{
long n,m,k;
k=0;
long *p;
cout<<"Input n: ";
cin>>n;
m=(n+1)*(n+2)/2; //m为输出数据的总个数
p=new long[m];
if(p==NULL) {
cout<<"Error,cannot allocate memory!"; //动态分配失败
exit(1);