有哪位大佬能解释下不?为啥加了a[i][i]=1 ,a[1][1] 变成了2?

有哪位大佬能解释下不?为啥加了a[i][i]=1 ,a[1][1] 变成了2?

最后打印的时候出错了,for(j = 0; j <i; j++)应该是for(j = 0; j <= i; j++)。具体代码如下

#include <stdio.h>
#include <stdlib.h>
#define M 10
int main()
{
	int a[M][M] ={0},i,j,b,c,d;
	for (i = 0; i < M;i++)
	{
		a[i][i] = 1;
		a[i][0] = 1;
	}
	for (i = 2; i < M; i++)
	{
		for(j = 1; j < i; j++)
			a[i][j] = a[i-1][j-1] + a[i-1][j];
	}

	for (i = 0; i < M;i++)
	{
		for(j = 0; j <= i; j++)
			printf("%5d",a[i][j]);
		printf("\n");
	}
	system("pause");
	return 0;
}