ahaoniha 2021-05-13 16:35 采纳率: 62.5%
浏览 57

编译不通过,这段代码错在哪里?

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,i,j,k,t,z,sum=0;
    scanf("%d",&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;
}

  • 写回答

4条回答 默认 最新

  • 关注

    这行代码有问题

    int a[z][3],b[n];

    定义数组的长度不能用变量z,n,只能用常量。

    评论

报告相同问题?