local function definitions are illegal是什么错误?

#include"stdio.h"#include"malloc.h"#include"string.h"intn;structstudent{charnum[20];c... #include "stdio.h"
#include "malloc.h"
#include "string.h"
int n;
struct student
{
char num[20];
char name[10];
int age;
char sex;
char birthday[10];
char address[20];
char phonenum[30];
char email[40];
struct student *next;
};
void sr (struct student *p,int *q)
{
int i;
printf("请输入您要输入信息的学生人数:");
scanf("%d",q);
for (i=0;i<*q;i++)
{
printf("请输入第【%d】名同学的信息\n",i+1);
printf("请输入学号");
scanf("%d",&p->num);
printf("请输入姓名");
scanf("%s",p->name);
printf("请输入年龄");
scanf("%d",&p->age);getchar();
printf("请输入性别");
scanf("%c",&p->sex);
printf("请输入出生年月");
scanf("%s",p->birthday);
printf("请输入地址");
scanf("%s",p->address);
printf("请输入电话");
scanf("%s",p->phonenum);
printf("请输入E-mail:");
scanf("%s",p->email);
p++;

}

void main ()
{
struct student *pstu;
pstu=(struct student*)malloc(sizeof(struct student));
int choice;
int *pn;
pn=&n;
do
{
printf("菜单\n=============================\n 1......学生信息录入\n 2......学生信息浏览\n 3......按学号查询学生信息\n 4......按姓名查询学生信息\n 5......退出系统\n=============================\n请输入序号选择您需要的操作:\n");
scanf("%d",&choice);
switch(choice)
{
case 1:sr(pstu,pn);break;
case 2:;break;
case 3:printf("3\n");break;
case 4:printf("4\n");break;
case 5:break;
default:printf("error\n");break;
}
}while(change!=5);

}
还没完成,这个是学生信息管理系统。
现在 有错误
error C2601: 'main' : local function definitions are illegal
展开
 我来答
han43001
2010-06-24 · TA获得超过363个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:370万
展开全部
#include "stdio.h"
#include "malloc.h"
#include "string.h"
int n;
struct student
{
char num[20];
char name[10];
int age;
char sex;
char birthday[10];
char address[20];
char phonenum[30];
char email[40];
struct student *next;
};
void sr (struct student *p,int *q)
{
int i;
printf("请输入您要输入信息的学生人数:");
scanf("%d",q);
for (i=0;i<*q;i++)
{
printf("请输入第【%d】名同学的信息\n",i+1);
printf("请输入学号");
scanf("%d",&p->num);
printf("请输入姓名");
scanf("%s",p->name);
printf("请输入年龄");
scanf("%d",&p->age);getchar();
printf("请输入性别");
scanf("%c",&p->sex);
printf("请输入出生年月");
scanf("%s",p->birthday);
printf("请输入地址");
scanf("%s",p->address);
printf("请输入电话");
scanf("%s",p->phonenum);
printf("请输入E-mail:");
scanf("%s",p->email);
p++;

}
}

void main ()
{
struct student *pstu;
pstu=(struct student*)malloc(sizeof(struct student));
int choice;
int *pn;
pn=&n;
do
{
printf("菜单\n=============================\n 1......学生信息录入\n 2......学生信息浏览\n 3......按学号查询学生信息\n 4......按姓名查询学生信息\n 5......退出系统\n=============================\n请输入序号选择您需要的操作:\n");
scanf("%d",&choice);
switch(choice)
{
case 1:sr(pstu,pn);break;
case 2:;break;
case 3:printf("3\n");break;
case 4:printf("4\n");break;
case 5:break;
default:printf("error\n");break;
}
}while(choice!=5);

}

貌似你掉了个括号吧,就在main 在前面,然后最后的change是不是该改成choice?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f2077e710
2010-07-09
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
指的是你的main函数定义在了另一个函数里面

void sr (struct student *p,int *q)
这个函数最后缺少一个 }(大括号)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CdPzh
2010-06-25 · TA获得超过3064个赞
知道小有建树答主
回答量:641
采纳率:0%
帮助的人:755万
展开全部
报一个错误,其实不止一个。
'sell' : local function definitions are illegal,此错误是由于上一个函数未结束造成。
input函数中,大括号不匹配,在末尾添加一个“}”即可解决这个错误。
但一波刚平,多波又起。再编译,出现了十几个
错误。细看看,所报不差。
void start();这是声明。
void goods::start(const goods &A)这是定义。可见二者不符。
char goods::name[i]='0';
double goods::price[i]=0;
int goods::num[i]=0;
上三外有变量重定义之错,要把类型符去掉。
int goods::total=0;亦如此
sell函数定义中,第一个break妥,建议改为return.
start函数中,把for前一大括号移到int goods::total=0;之前或之后,看你的逻辑而定。
还剩两处错误,好像与你的函数有关,我不细看了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyu3170
2015-07-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:5513
采纳率:85%
帮助的人:509万
展开全部
函数定义非法。
重点检查内容:
1、哪里{}没用对,大量语句编程,往往会漏掉“}”。
注:这一情况非常常见,查时可以用ctrl+]这个快捷键,定位到对应的大括号上。
2、查看所用函数的格式是否正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式