关于二维数组的问题,计算并输出杨辉三角
小弟初学,遇到一题目如下。题目:计算并输出杨辉三角形(要求打印出10行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…………
算法分析:杨辉三角形的第一行只有一个数1,然后下行比上一行多一个数,两遍都是1,中间各数分别是上一行对应两个数之和。使用一个二维数组来存储杨辉三角,用双重循环来处理,只需对下三角的元素进行存储和输出,因此内层循环控制条件为列号j小于等于行号i。
题目中的程序如下:
#include <stdio.h>
void main()
{
int i,j;
int a[10][10];
printf("\n");
/*请将此处的代码补充完整*/
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
小弟的程序如下:
#include <stdio.h>
void main()
{
int i,j;
int a[10][10];
printf("\n");
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
C语言不报错,但运行时总出现错误。望各位能留心指点,帮小弟解决这个问题!!!谢谢!!!