左叶8 为什么显示server timeout

img


#include 

struct stu

{

int no;

char name[30];

int g[3];

int s;

int gk;

};

int main()

{  struct stu a[30];

 int n;

while(scanf("%d",&n)!=EOF)

 {int i,j;

 for(i=0;is=0;a[i].gk=0;

  scanf("%d%s",&a[i].no,&a[i].name);

    for(j=0;j<3;j++)

     {a[i].s=a[i].s+a[i].g[j];

      if(a[i].g[j]<60)

     a[i].gk=1;}}

 int max=0;

for(i=0;iif(a[i].s>max&&a[i].gk==0)

  max=a[i].s;}

for(i=0;iif(a[i].s==max&&a[i].gk==0)

printf("%d %s %d\n",a[i].no,a[i].name,a[i].s);}

}return 0;

}   

应该是因为缺少获取每个学生3门成绩的代码,所以导致获取输入错误,而让程序异常了。补上获取每个学生3门成绩的代码即可。

修改如下:



#include <stdio.h>

struct stu

{

    int no;

    char name[30];

    int g[3];

    int s;

    int gk;

};

int main()

{
    struct stu a[30];

    int n;

    while(scanf("%d",&n)!=EOF)

    {
        int i,j;

        for(i=0; i<n; i++)

        {
            a[i].s=0;
            a[i].gk=0;

            scanf("%d%s",&a[i].no,a[i].name);

            for(j=0; j<3; j++)
            {
                scanf("%d",&(a[i].g[j])) ;// 增加每组中获取每个学生3门成绩的代码即可 
                a[i].s=a[i].s+a[i].g[j];

                if(a[i].g[j]<60)

                    a[i].gk=1;
            }
            
        //    printf("input:%d %s %d,gk=%d\n",a[i].no,a[i].name,a[i].s,a[i].gk);
        }
        
        
        int max=0;

        for(i=0; i<n; i++)

        {
            if(a[i].s>max&&a[i].gk==0)

                max=a[i].s;
        }
    //    printf("max=%d\n",max);
        
        for(i=0; i<n; i++)

        {
            if(a[i].s==max&&a[i].gk==0)

                printf("%d %s %d\n",a[i].no,a[i].name,a[i].s);
        }

    }
    return 0;

}

img