[Error] a function-definition is not allowed here before '{' token
[Error] expected'}' at end of input
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef struct student
{
char num[6];
char name[20];
int score;
struct student *next;
}student,*LinkList;
//定义一个单链表,并插入n个学生
void menu()
{
printf("\n****学生成绩管理系统****\n");
printf("1.学生成绩单链表创建\n");
printf("2.插入学生信息\n");
printf("3.删除学生信息\n");
printf("4.输出学生信息\n");
printf("0.退出\n");
} //菜单的页面
void CreateList(LinkList *L,int n)
{
int i;
LinkList p;
(*L)=(LinkList)malloc(sizeof(student));
(*L)->next=NULL;
for(i=1;i<=n;i++)
{
p=(LinkList)malloc(sizeof(student));
printf("请输入第%d位学生的学号 姓名 成绩 (用空格分隔) :",i);
scanf("%s %s %d",p->num,p->name,&p->score);
p->next=(*L)->next;
(*L)->next=p;
}
}
//创建单链表
void Print_L(LinkList L)
{
LinkList p;
int i;
p=L->next;
if(!p)
printf("该学生成绩为空表!\n");
else
{
printf("所有学生信息: \n");
printf("学号\t姓名\t成绩\n");
while(p)
{
printf("%s\t%s\t%d\n",p->num,p->name,p->score);
p=p->next;
}
}
}
//输出链表信息
int ListInsert_L(LinkList *L,int i,student e)
{
int j;
LinkList p,s;
p=(*L);
j=0;
while(p&&j<i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1)
return ERROR;
s=(LinkList)malloc(sizeof(student));
*s=e;
s->next=p->next;
p->next=s;
return OK;
//L为指向带头结点单链表的头指针的指针,在链表的第i个位置插入新的元素e
int ListDelete_L(LinkList *L,int i)
{
int j;
LinkList p,q;
p=(*L);
j=0;
while(p->next&&j<i-1)
{
p=p->next;
j++;
}
if(!(p->next)||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
free(q);
return OK;
}
//删除第i个结点
int main()
{
LinkList L;
int choose,i,n,temp;
student e;
char snum[20];
while(1)
{
menu();
printf("\n请选择功能:");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("学生成绩单链表创建\n");
printf("学生成绩单链表创建\n");
scanf("%d",&n);
CreateList_L(&L,n);
Print_L(L);
break;
case 2:
printf("2.插入学生信息\n");
scanf("%d",&i);
printf("请输入要插入的学生的学号 姓名 成绩(用空格分隔):");
scanf("%s %s %d",e.num,e.name,&e.score);
temp=ListInsert_L(&L,i,e);
if(temp==OK)
{
printf("插入成功!\n");
Print_L(L);
}
else
printf("插入失败!\n");
break;
case 3:
printf("3.删除学生信息\n");
scanf("%d",&i);
temp=ListDelete_L(&L,i);
if(temp==OK)
{
printf("删除成功!\n");
Print_L(L);
}
else
printf("删除失败!\n");
break;
case 4:
printf("4.输出学生信息\n");
Print_L(L);
break;
case 0:
printf("0.退出\n");
break;
default:
printf("输入错误,请重输!\n");
break;
}
}
return 0;
}
> [Error] expected'}' at end of input
看看你的 { } 都配对了没有。