读书人

哪位帮忙啊C++有关问题求解

发布时间: 2012-02-29 16:44:10 作者: rapoo

哪位大虾帮忙啊,在线等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];

读书人网 >C++

热点推荐