C语言知识,求解答呀

img

img


为什么我把第五行的 a[21][21]改成a[20][20]的话
我输入20 第一个能运行得到结果 第二个却不能得到结果呢?求解

img


新改的,越界了,但输入20却有输出

数组的下标是从0开始的,不是从1开始的
a[20]的下标最多到19
I<=20肯定越界了

明显越界了

确实越界了,i<=n。i:1到20。
定义的a[20][20]实际是从a[0][0]到a[19][19]
所以i等于20时,a[20][20]、a[20][ ]、a[ ][20]是越界的