m0_51574391 2021-01-04 20:15 采纳率: 25%
浏览 9

这个是什么原因啊,括号的问题吗

[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;
}
  • 写回答

1条回答 默认 最新

  • SoftwareTeacher 《编程之美》作者 2021-01-05 03:06
    关注

    > [Error] expected'}' at end of input

    看看你的 { } 都配对了没有。 

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作