急!还有两天要答辩了,代码还没搞定#“选题管理系统” C语言#

问题遇到的现象和发生背景

D:\数据结构\学习使用\xx1.cpp(242) : error C2601: 'main' : local function definitions are illegal
打了一个查找的子函数,就一直有这个错误,找不到

问题相关代码,请勿粘贴截图

void search(struct Student stu[],int n)
{
int i,w,flag;
char s1[20];
printf("学生信息查询\n");
printf("根据学号查询请按1 \n");
printf("根据姓名查询请按2 \n");
printf("根据题目编号查询请按3 \n");
printf("根据题目名称查询请按4 \n");
printf("推出本菜单请按5 \n");
while(1)
{
printf("请选择子菜单编号:");
scanf("%d",&w);
flag=0;
switch(w)
{
case 1:
printf("请输入要查询的学号:\n");
scanf("%s",&s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].student_id,s1)==0)
{
flag=1;
printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
printf("%d\t",stu[i].student_id);
printf("%s\t",stu[i].student_name);
printf("%d\t",stu[i].Class);
printf("%d\t\t",stu[i].course_id);
printf("%s\n",stu[i].course_name);
printf("\n");
}
if(0==flag)
printf("该学号不存在!\n");break;
case 2:
printf("请输入要查询的姓名:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].student_name,s1)==0)
{
flag=1;
printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
printf("%d\t",stu[i].student_id);
printf("%s\t",stu[i].student_name);
printf("%d\t",stu[i].Class);
printf("%d\t\t",stu[i].course_id);
printf("%s\n",stu[i].course_name);
printf("\n");
}
if(0==flag)
printf("该姓名不存在!\n");break;
case 3:
printf("请输入要查询的课程编号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].course_id,s1)==0)
{
flag=1;
printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
printf("%d\t",stu[i].student_id);
printf("%s\t",stu[i].student_name);
printf("%d\t",stu[i].Class);
printf("%d\t\t",stu[i].course_id);
printf("%s\n",stu[i].course_name);
printf("\n");
}
if(0==flag)
printf("该课程编号不存在!\n");break;
case 4:printf("请输入要查询的课程名称:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].course_name,s1)==0)
{
flag=1;
printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
printf("%d\t",stu[i].student_id);
printf("%s\t",stu[i].student_name);
printf("%d\t",stu[i].Class);
printf("%d\t\t",stu[i].course_id);
printf("%s\n",stu[i].course_name);
printf("\n");
}
if(0==flag)
printf("该课程名称不存在!\n");break;
case 5:return;
default:printf("你输入的编号不正确,请重新输入!\n");
}
}
//主函数区
int main()
{
while(0)
{
int j,num;
menu();
printf("请选择你的操作:");
scanf("%d",&j);
switch(j)
{
case 1: write(stu,N);break;
case 2: read(stu,N); break;
//case 3: add(stu,N); break;
//case 4: search(stu,N);break;
/case 5: alter(stu,N);break;
case 6: delete(stu,N);break;
/
case 7:fun1;break;
case 8:fun2;break;
case 0:exit(1);
default: printf("你输入的编号不正确!\n");
}
}
return 0;
}

运行结果及报错内容

xx1.cpp
D:\数据结构\学习使用\xx1.cpp(242) : error C2601: 'main' : local function definitions are illegal
D:\数据结构\学习使用\xx1.cpp(265) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

xx1.exe - 1 error(s), 0 warning(s)

我的解答思路和尝试过的方法
我想要达到的结果

能够顺利解决

应该是上面的函数少了半拉大括号 },在int main()上一行加个大括号 }就可以了

void search(struct Student stu[],int n)
{
    int i,w,flag;
    char s1[20];
    printf("学生信息查询\n");
    printf("根据学号查询请按1 \n");
    printf("根据姓名查询请按2 \n");
    printf("根据题目编号查询请按3 \n");
    printf("根据题目名称查询请按4 \n");
    printf("推出本菜单请按5 \n");
    while(1)
    {
        printf("请选择子菜单编号:");
        scanf("%d",&w);
        flag=0;
        switch(w)
        {
        case 1:
            printf("请输入要查询的学号:\n");
            scanf("%s",&s1);
            for(i=0;i<n;i++)
                if(strcmp(stu[i].student_id,s1)==0)
                {
                    flag=1;
                    printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
                    printf("%d\t",stu[i].student_id);
                    printf("%s\t",stu[i].student_name);
                    printf("%d\t",stu[i].Class);
                    printf("%d\t\t",stu[i].course_id);
                    printf("%s\n",stu[i].course_name);
                    printf("\n");
                }
                if(0==flag)
                    printf("该学号不存在!\n");break;
        case 2:
            printf("请输入要查询的姓名:\n");
            scanf("%s",s1);
            for(i=0;i<n;i++)
                if(strcmp(stu[i].student_name,s1)==0)
                {
                    flag=1;
                    printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
                    printf("%d\t",stu[i].student_id);
                    printf("%s\t",stu[i].student_name);
                    printf("%d\t",stu[i].Class);
                    printf("%d\t\t",stu[i].course_id);
                    printf("%s\n",stu[i].course_name);
                    printf("\n");
                }
                if(0==flag)
                    printf("该姓名不存在!\n");break;
        case 3:
            printf("请输入要查询的课程编号:\n");
            scanf("%s",s1);
            for(i=0;i<n;i++)
                if(strcmp(stu[i].course_id,s1)==0)
                {
                    flag=1;
                    printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
                    printf("%d\t",stu[i].student_id);
                    printf("%s\t",stu[i].student_name);
                    printf("%d\t",stu[i].Class);
                    printf("%d\t\t",stu[i].course_id);
                    printf("%s\n",stu[i].course_name);
                    printf("\n");
                }
                if(0==flag)
                    printf("该课程编号不存在!\n");break;
        case 4:printf("请输入要查询的课程名称:\n");
            scanf("%s",s1);
            for(i=0;i<n;i++)
                if(strcmp(stu[i].course_name,s1)==0)
                {
                    flag=1;
                    printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
                    printf("%d\t",stu[i].student_id);
                    printf("%s\t",stu[i].student_name);
                    printf("%d\t",stu[i].Class);
                    printf("%d\t\t",stu[i].course_id);
                    printf("%s\n",stu[i].course_name);
                    printf("\n");
                }
                if(0==flag)
                    printf("该课程名称不存在!\n");break;
        case 5:return;
        default:printf("你输入的编号不正确,请重新输入!\n");
        }
    }
}
//主函数区
int main()
{
    while(0)
    {
        int j,num;
        menu();
        printf("请选择你的操作:");
        scanf("%d",&j);
        switch(j)
        {
        case 1: write(stu,N);break;
        case 2: read(stu,N); break;
            //case 3: add(stu,N); break;
            //case 4: search(stu,N);break;
            /case 5: alter(stu,N);break;
            case 6: delete(stu,N);break;/
            case 7:fun1;break;
            case 8:fun2;break;
            case 0:exit(1);
            default: printf("你输入的编号不正确!\n");
        }
    }
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632