哪位大虾帮忙啊,在线等C++问题求解
画一个杨辉三角,我写的程序如下:
#include <iostream.h>
#define N 7
void main ()
{
int i,j;
int a[N][N];
for (int m=1;m <=N;m++)
{
a[m][1]=1;a[m][m]=1;
}
for (i=3;i <=N;i++)
{
for (j=2;j <i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for (i=1;i <=N;i++)
{
for (int n=N-i+1;n> 0;n--)
cout < < " ";
for (j=1;j <=i;j++)
cout < <a[i][j] < < " ";
cout < <endl;
}
}
最后一行第一列不是“1”,而是“7”,并且系统提示错误。为何啊?
[解决办法]
int a[N][N];
大小为N*N
那么元素下标只能取到N-1
所以for (int m=1;m <=N;m++)
{
a[m][1]=1;a[m][m]=1;
}
这里m=N时越界。
把int a[N][N];改成int a[N+1][N+1];