luran_lz 2017-10-09 12:38 采纳率: 0%
浏览 620

编译正确,但一运行就会崩,不知错在哪里,请各位大神看错在哪里,万分感谢!

#include
#include
#include
#include
#define Maxsize 200
typedef struct
{
char ISBN[20];
char name[20];
char author[20];
char price[20];
}ElemType;
typedef struct
{
ElemType data[Maxsize],data1[Maxsize];
int length;
}SeqList;
SeqList L;
void InitList(SeqList *L)
{
L=(SeqList
)malloc(sizeof(SeqList));
L->length=0;
}
int ListEmpty(SeqList *L)
{
return(L->length==0);
}
void AddBook(SeqList *L) //添加图书
{
printf("请输入图书信息\n");
printf("书号:\t书名:\t作者:\t价格:\n");
scanf("%s %s %s %s",L->data[L->length].ISBN,L->data[L->length].name,L->data[L->length].author,L->data[L->length].price);
printf("\n");
L->length++;
printf("添加图书成功!\n");
}
void Search(SeqList *L) //查询
{
char isbn[20];
int i=0;
printf("请输入要查找的书号:");
scanf("%s",isbn);

while(ilength&&L->data[i].ISBN!=isbn)
{
i++;
}
if(i>=L->length)
{
printf("图书馆没有此书!\n");
}
else
{
printf("书号\t书名\t作者\t价格\n");
scanf("%s %s %s %s",L->data[i].ISBN,L->data[i].name,L->data[i].author,L->data[i].price);
printf("\n");

}
}
void Revise(SeqList *L) //修改图书信息
{ char isbn[20];
int i=0,v=0;
printf("请输入要修改图书的书号:");
scanf("%s",&isbn);
printf("要修改的图书信息如下:");

while(ilength&&L->data[i].ISBN!=isbn)
{
i++;
}
if(i>=L->length)
{
printf("图书馆没有此书!\n");
}
else
{
printf("书号\t书名\t作者\t价格\n");
scanf("%s %s %s %s",L->data[i].ISBN,L->data[i].name,L->data[i].author,L->data[i].price);
printf("\n");
printf("请输入修改后的图书信息:");
printf("书号\t书名\t作者\t价格\n");
scanf("%s %s %s %s",L->data[i].ISBN,L->data[i].name,L->data[i].author,L->data[i].price);
for(v=0;vlength;v++)
{
if(L->data[v].ISBN==L->data[i].ISBN)
L->length--;
}
printf("\n");
printf("修改图书信息成功!\n");
}
}
void Delete(SeqList *L) //删除图书
{
char isbn[20];

int i=0;
printf("请输入要删除图书的书号:");

scanf("%s",&isbn);

while(ilength&&L->data[i].ISBN!=isbn)
{
i++;
}
if(i>=L->length)
{
printf("图书馆没有此书!\n");
}
else
{
int j;
printf("ISBN:%s的图书%s已成功删除\n",L->data[i].ISBN,L->data[i].name);
for(j=i;jlength-1;j++)
L->data[j]=L->data[j+1];
L->length--;
}
}
void Display(SeqList *L)
{
int i;
for(i=0;ilength;i++)
{
printf("书号\t书名\t作者\t价格\n");
printf("%s %s %s %s",L->data[i].ISBN,L->data[i].name,L->data[i].author,L->data[i].price);
}
}
int main()
{ int a;
InitList(L);
printf("----请输入数字查询----\n");
printf("----1.添加图书----\n");
printf("----2.查询图书----\n");
printf("----3.修改图书----\n");
printf("----4.删除图书----\n");
printf("----5.显示图书----\n");
printf("----6.退出----\n");
scanf("%d",&a);
switch(a)
{
case 1:AddBook(L);break;
case 2:Search(L);break;
case 3:Revise(L);break;
case 4:Delete(L);break;
case 5:Display(L);break;

case 6:printf("您已成功退出!");return 0;break;
default:printf("输入错误!");
}

return 0;
}

  • 写回答

2条回答 默认 最新

  • 仅仅学会简单 2017-10-10 06:08
    关注

    调试一下啦,找到崩溃的地方,分析

    评论

报告相同问题?

悬赏问题

  • ¥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之后自动重连失效