花满店香 2022-03-15 21:03 采纳率: 66.7%
浏览 20
已结题

急!还有两天要答辩了,代码还没搞定#“选题管理系统” 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)

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

能够顺利解决

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-03-15 21:12
    关注

    应该是上面的函数少了半拉大括号 },在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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效