动态定义杨辉三角的问题,输出结果为什么不正常?
程序代码:
#include<iostream> using namespace std; void main() { int n; int(*p)[100]; int i,j; cout<<"请输入您需要的杨辉三角的维度,不能超过100"<<endl; cin>>n; for(i=0;i<n;i++) {p=new int[n][100]; for(j=0;j<=i;j++) {if(j==0||i==j) *(*(p+i)+j)=1; else *(*(p+i)+j)=*(*(p+i-1)+j-1)+*(*(p+i-1)+j); cout<<*(*(p+i)+j); } cout<<endl; } }
不报错,能运行,但结果不正确,除了第一列,和a[i][i]那列为1,其余的中间部分全部是2个垃圾数据的和。
结果如下:
请输入您需要的杨辉三角的维度,不能超过100
5
1
11
1-16843009021
1-1684300902-16843009021
1-1684300902-1684300902-16843009021
Press any key to continue