旗鼓相当的对手输入第二组数据后终止进程,怎么回事

在输入第二组数据后出现越界情况

img

img

img

img


c语言加强版旗鼓相当的对手,输入后结果如下,为什么会有这种情况。
4
xiaohong 120 100 99
xiaoming 121 103 98
david 115 102 100
alex 118 101 102

  • 终端进程“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command & 'c:\Codefield\CODE_C\C_Single\computer experiment\bin\11-2上机2.exe'”已终止,退出代码: 1。
  • 按任意键关闭终端。

#include<stdio.h>
#include<math.h>

int main(){
    int n, flag=0;
    scanf("%d", &n);
    int a[n][3];
    for(int i=0; i<n; i++){     //一个循环,输入三次,降低复杂度 
        scanf("%d", &a[i][0]);
        scanf("%d", &a[i][1]);
        scanf("%d", &a[i][2]);
    }
    
    for(int i=0; i<n; i++){  //拿第 i 名同学与其他比 
        for(int j=i+1; j<n; j++){
            int x = fabs( a[i][0] - a[j][0] );  //语文 
            int y = fabs( a[i][1] - a[j][1] );  //数学 
            int z = fabs( a[i][2] - a[j][2] );  //英语 
            int s = fabs( (a[i][0]+a[i][1]+a[i][2]) - (a[j][0]+a[j][1]+a[j][2]) );   //总分差
            if(x <= 5 && y <= 5 && z <= 5 && s <= 10){
                flag += 1;
            }
        } 
    } 
    
    printf("%d", flag);
    
    return 0;
}