请问为什么运行结果是这样的,这段代码哪个地方错了?

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,i,j,k,t,z,sum=0;
    scanf("%d",&n);
    z=n;
    int a[z][3],b[n];
    for(i=0;i<n;i++)
      for(j=0;j<3;j++)
        scanf("%d",a[i][j]);
    for(i=0;i<n;i++)
      for(j=0;j<3;j++)
        {
            sum=sum+a[i][j];
            b[i]=sum;
        }
    for(i=0;i<n;i++)
    {
        
        for(j=i+1;j<=n;j++)
        {
            if(b[i]<b[j])
            {
                k=i;
                i=j;
                j=k;
            }
            else if(b[i]=b[j])
            {
                if(a[i][1]<a[j][1])
                {
                    k=i;
                    i=j;
                    j=k;
                }
            }
            if(j<6) printf("%d %d",i,b[i]); 
        }    
    }
    return 0;
}

int a[z][3],b[n];---你这代码编译能通过吗?

n,i,j,k,t,z  都要看傻了