帮我看一下这段代码哪里错了啊

void deletStudent(struct student s[],int a){

long id;
char name[10];
float m_score;//数学成绩
float E_score;//英语成绩
float c_score;//C语言成绩
int x;
int i;
int t;//删除选项
printf("根据学号删除请输入1");
printf("根据姓名删除请输入2");
printf("结束本次服务请输入其他数字");
printf("请输入你的选择");
scanf("%d",&t);
if(t==1){
    printf("请输入你所要删除学生的学号:\n");
    scanf("%ld",&id);
    for(i=1;i<a;i++){
        if(s[i].id==id)//指针指向数据库
        {    printf("学号:%ld,姓名:%s,数学:%d,英语:%d,c_语言:%d",s[i].id,s[i].name,s[i].m_score,s[i].E_score,s[i].c_score);
            for( x=i; x<count; x++){
                s[x].id=s[x+1].id;
                strcmp(s[x].m_score,s[x+1].m_score);
                strcmp(s[x].E_score,s[x+1].E_score);
                strcmp(s[x].c_score,s[x+1].c_score);
                 }
                count=count-1;

                printf("删除成功!\n");
                break;
            }

        else if(s[i].id!=id){

                printf("未找到该学生,请核实学号后输入。\n");
                break;
        }
            

        }

else if(t==2){
    printf("请输入你所要删除学生的姓名:\n");
    scanf("%s\n",name);
    for(i=1;i<a;i++){
        printf("学号:%ld,姓名:%s,数学:%d,英语:%d,c_语言:%d",s[i].id,s[i].name,s[i].m_score,

第四十三行少了个取地址符&

你这个代码有点怪,你的思路是找到删除的元素,后面前移覆盖。我提几个建议
1,你的i为什么不从0开始
2,删除完一个元素后你的a不需要变化么

根据题主的代码修改,形参int a 是数组记录的条目值,且为全局变量,供参考:

void deletStudent(struct student s[],int a)//这个 a 是全局变量,数组记录条目值
{
    long id;
    char name[10];
   // float m_score;//数学成绩
   // float E_score;//英语成绩
   // float c_score;//C语言成绩
    int x,flg;
    int i;
    int t;//删除选项
    printf("根据学号删除请输入1");
    printf("根据姓名删除请输入2");
    printf("结束本次服务请输入其他数字");
    printf("请输入你的选择");
    scanf("%d",&t);
    if(t==1){
       printf("请输入你所要删除学生的学号:\n");
       scanf("%ld",&id);
       for(i = 0,flg = 0;i < a;i++){ //for(i=1;i<a;i++){
          if(s[i].id==id)//指针指向数据库
          {
             printf("学号:%ld,姓名:%s,数学:%d,英语:%d,c_语言:%d\n",s[i].id,s[i].name,
                                                      s[i].m_score,s[i].E_score,s[i].c_score);
             for(x = i; x < a-1; x++){  //for( x=i; x<count; x++){
                 s[x] = s[x+1];
             }
             a--;
             flg = 1;
             printf("删除成功!\n");
             break;
          }
       }
       if(flg == 0)
             printf("未找到该学生,请核实学号后输入。\n");
             //break;
    }
    else if(t==2){
       printf("请输入你所要删除学生的姓名:\n");
       scanf("%s",name);  //scanf("%s\n",name);
       for(i = 0,flg = 0;i < a;i++){  //for(i=1;i<a;i++){
           if(strcmp(s[i].name,name)==0){
              printf("学号:%ld,姓名:%s,数学:%d,英语:%d,c_语言:%d\n",s[i].id,s[i].name,
                                                      s[i].m_score,s[i].E_score,s[i].c_score);
              for(x = i; x < a-1; x++){
                 s[x] = s[x+1];
             }
             a--;
             flg = 1;
             printf("删除成功!\n");
             break;
           }
       }
       if(flg == 0)
             printf("未找到该学生,请核实姓名后输入。\n");
    }
    else{
       printf("你选择了结束本次服务。\n");
    }
}