作业题。编译的时候一直说我第2个算法开始都有语法错误,请各位大神帮忙看一下
typedef int Status;#define OK 1
#define ERROR 0
#define N 4
#include <stdio.h>
#include <stdlib.h>
#include "string.h"
typedef struct{
int num;
char name[30];
}component,SLinkList[N];
int LocateElem_SL(SLinkList S,char e)
{
int i;
i=S[0].num;
while(i&&(S[i].name[30])!=e)i=S[i].num;
return i;
}
Status SListInsert_SL(SLinklist S,int i,char e)
{ //插入
p=S[0].num; //定义指针指向第一个元素
j=0;
while(p&&j<i-1){p=p->next;++j;}
if(!p||j>i-1)return ERROR;
s=(SLinkList)malloc(sizeof(LNode));
s->name[30]=e;
s->next=p->next;
p->next=s;
return OK;
}
Status SListDelete_SL(SLinklist S,char e){ //删除
int i;
p=S[0].num;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;
e=q->data;free(q);
return OK;
}
void CreateList_SL(Linklist S,int n)
{
for(i=n;i>0;--i)
{
p=(Linklist)malloc(sizeof(LNode));
scanf(&p->num);
scanf(&p->name[30]);
p->next=L->next;L->next=p;
}
}
Status SListsort SL(SLinklist S,char e)
{ //排序
j=0;
i=1;
char a
for(j=0;j<N;j++)
{
if(S[i].num>=S[i+1].num)
{
a=S[i-1].name;
S[i-1].name=S[i].name;
S[i].name=a;
}
}
}
void fun1()
{
int i;
for(i=0;i<N;i++)
{
printf("请输入编号:\n");
scanf("%d",&SLinkList[i].num);
printf("请输入书名:\n");
scanf("%s",&SLinkList[i].name);
}
}
Status select(int a) //程序选择
{
char e;
int d;
switch(a)
{
case '1': //调用查询算法
{
char e;
printf("请输入图书名称:/n");
scanf("%s",&e);
LocateElem_SL();
}break;
case '2': //调用插入算法
{
printf("请输入图书名称:\n");
scanf("%s",&e);
printf("请输入图书编号:\n");
scanf("%d",&d);
ListInsert_L(d,e);
}break;
case '3': //调用删除算法
{
printf("请输入图书名称:/n");
scanf("%s",&e);
ListDelete_L(e);
}
case '4': //调用排序算法
{
SListsort SL();
}break;
default :printf("error\n");
}
}
void main() //主程序
{
int a,k;
printf("图书馆检索系统/n");
CreateList_SL()
do{
printf("请选择操作(1=查询,2=插入,3=删除,4=排序):\n");
scanf("%d",&a);
select(a);
printf("操作完成,返回上级菜单请输入数字0\n");
scanf("%d",&k);
}
while(k=0);
}