纯C: error C2143:


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>

FILE *fp;
int m;
struct info
{
    int bianhao;
    char name[20];
    int gongzi;
    char xueli[20];
    char zhiwu[20];
    char dianhua[15];
}em[100];
int vis[100]={0};



void bynumber()  //按编号查询
{
    int n;
    printf("请输入所需查询的员工编号:");
    scanf("%d",&n);
    if(vis[n])
    {
        printf("编号 员工姓名  工资    学历     职务     联系电话\n");
        printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[n].bianhao,em[n].name,em[n].gongzi,em[n].xueli,em[n].zhiwu,em[n].dianhua);
    }
    else
        printf("未找到符合要求的记录\n");
}

void byname() //按姓名查询
{    char ch[10];
    int s=0;
    int i;

    printf("请输入所需查询的员工姓名:");
    scanf("%s",&ch);
    for( i=1;i<=m;i++)
    {
        if(strcmp(ch,em[i].name)==0)
        {    
            s=1;
            printf("编号 员工姓名  工资    学历     职务     联系电话\n");
            printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
        }
    }
    if(s==0)
        printf("未找到符合要求的记录\n");
}


void bymoney() //按工资区间查询
{    
    if((fp=fopen("out,text","r"))==NULL)
        return;
    char c;
    int i;
    int n;
    int s=0;

    printf("请输入所需查询的工资区间:");

    scanf("%c%d",&c,&n);

    if(c=='>')
    {
       for( i=1;i<=m;i++)
       {
            if(em[i].gongzi>n)
            {    
               s=1;
               printf("编号 员工姓名  工资    学历     职务     联系电话\n");
               printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
            }
       }
            if(s==0)
        printf("未找到符合要求的记录\n");
    }
    else if(c=='<')
    {
       for( i=1;i<=m;i++)
       {
            if(em[i].gongzi<n)
            {    
               s=1;
               printf("编号 员工姓名  工资    学历     职务     联系电话\n");
               printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
            }
       }
            if(s==0)
        printf("未找到符合要求的记录\n");
    }
    else if(c=='=')
    {
       for( i=1;i<=m;i++)
       {
            if(em[i].gongzi==n)
            {    
               s=1;
               printf("编号 员工姓名  工资    学历     职务     联系电话\n");
               printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
            }
       }
            if(s==0)
        printf("未找到符合要求的记录\n");
    }
    fclose(fp);


void byposition()//按职务查询
{    
    if((fp=fopen("out,text","r"))==NULL)
        return;
    char ch[10];
    int s=0;

    printf("请输入所需查询的员工职务:");

    scanf("%s",&ch);

       for(int i=1;i<=m;i++)
       {
            if(strcmp(ch,em[i].zhiwu)==0)
            {    
               s=1;
               printf("编号 员工姓名  工资    学历     职务     联系电话\n");
               printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
            }
       }
            if(s==0)
        printf("未找到符合要求的记录\n");
        fclose(fp);
}


void byxueli()//按学历查询
{    
    if((fp=fopen("out,text","r"))==NULL)
        return;
    char ch[10];
    int s=0;

    printf("请输入所需查询的员工学历:");

    scanf("%s",&ch);
      
    for(int i=1;i<=m;i++)
       {
            if(strcmp(ch,em[i].xueli)==0)
            {    
               s=1;
               printf("编号 员工姓名  工资    学历     职务     联系电话\n");
               printf("%-3d  %-6s   %-7d %-8s %-8s %-8s\n",em[i].bianhao,em[i].name,em[i].gongzi,em[i].xueli,em[i].zhiwu,em[i].dianhua);
            }
       }
            if(s==0)
        printf("未找到符合要求的记录\n");
        fclose(fp);
}




void serch()//查询
{int t;
    system("cls");
    printf("                 ###########请选择查询方式##########\n"); 
    printf("                     1.通过员工编号     4.通过职务\n");  
    printf("                     2.通过员工姓名     5.通过学历\n");
    printf("                     3.通过工资区间     6.清屏\n"); 
    printf("                     0.退出\n"); 
    printf("             ##############################################\n");

    while(1)
    {
        printf("请输入您的选择:");
        scanf("%d",&t);
       if (t==1)
          bynumber();
       else if (t==2)
          byname();
       else if (t==3)
          bymoney();
       else if (t==4)
          byposition();
       else if (t==5)
          byxueli();
       else if (t==6)
          system("cls");
       else if (t==0)
          break;
       else 
           printf("指令错误!!\n");

    }
}




img

scanf("%s",ch);//字符串不需要取地址
for( i=1;i<=m;i++)都应该是for( i=0;i<m;i++),不然数组会越界访问

谢谢!!

谢谢!!