结构体为啥这样语法报错



#include
#include
int judge(int a,int b,int distance);
struct score
{
    int numble;
    int ChineseScore;
    int MathScore;
    int EnglishScore;
    int sum
};
int main()
{
  int N=0;
  int count=0;
  scanf("%d",&N);
  struct score[1001];
  for(int i=0;i"%d%d%d",&score.ChineseScore,
      &score.MathScore,&EnglishScore);
      sum=score.ChineseScore+score.MathScore+EnglishScore;
  }
  for(int i=0;ifor(int j=i;jflag=1;
        flag=judge(score[i].ChineseScore,score[j].ChineseScore,5);
        flag=judge(score[i].MathScore,score[j].MathScore,5);
        flag=judge(score[i].EnglishScore,score[j].EnglishScore,5);
        flag=judge(score[i].sum,score[j].sum,10);
        if(flag)
           count++;
      }
  }
}
int judge(int a,int b,int distance)
{
    int flag=1;
    if(abs(a-b)>distance)
       flag=0;
    return flag;
}

img

23,24行EnglishScore前缺少&score.
输入变量也不对。&score[i].ChineseScore

19行结构数组没起变量名啊