为什么输入书本数目为3,只输入了 1本,这个程序就返回了
代码如下,恳请各位博主解答。
#include <stdio.h>
#include <stdlib.h>
#define maxsize 10000
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct booklist{
char *name[50];
char *writer[20];
char *number[50];
}Book;
typedef struct listnode{
Book *elem;
int length;
}sqelist;
//初始化
sqelist L;
void Initlist(sqelist*L){
L->elem=(Book *)malloc(maxsize*sizeof(Book));
L->length=0;
}
//输入
void Inputelem(sqelist *L){
int i;
printf("请输入图书的数目:");
scanf("%d",&L->length);
for(i=0;i<L->length;i++);
scanf("%s%s%d",L->elem[i].name,L->elem[i].writer,&L->elem[i].number);
}
//输出
void outputelem(sqelist *L){
int i;
printf("\t书名\t作者\t书号\n");
for(i=0;i<L->length;i++)
printf("\t%s\t%s\t%d\n",L->elem[i].name,L->elem[i].writer,L->elem[i].number);
}
//查找
void searchforname(sqelist *L,char *name){
int i;
for(i=0;i<L->length;i++){
if(strcmp(L->elem[i].name,name)==0);
break;
}
if(i<L->length)
printf("你要查找的书名为%s的书号是: %d,作者是%s.\n",name,L->elem[i].number,L->elem[i].writer);
else
printf("查找不成功!");
}
void searchforloc(sqelist *L,int i){
printf("第%d位置上的书是:%s,%s,%d\n",i,L->elem[i-1].name,L->elem[i-1].writer,L->elem[i-1].number);
}
void searchlist(sqelist *L){
int choice;
char name[20];
while(1){
printf("********现在开始查找*******");
printf(" 1.按书名查找.\n");
printf(" 2.按作者查找.\n");
printf(" 3.按书号查找.\n");
printf(" 4.按位置查找.\n");
printf(" 0.退出.\n");
scanf("%d",&choice);
if(choice==0)break;
switch(choice){
case 1:printf("请输入你要查找的书名:");scanf("%s",name);
searchforname(L,name);break;
// case 2:printf("请输入你要查找的位置:");scanf("%d",int i);
// searchforloc(L,int i);scanf("%s",int i);
}
}
}
//插入
void listinsert(sqelist *L,int i,int j,Book e){
if(i<1 || i>L->length+1) return 0;
if(L->length==maxsize) return 1;
for(j=L->length-1;j>=i-1;j--)
L->elem[j+1]=L->elem[j];
L->elem[i-1]=e;
++L->length;
return 0;
}
//删除
void listDel(sqelist *L,int i,int j){
if((i<1)||(i>L->length)) return 0;
for (j=i;j<=L->length-1;j++)
L->elem[j-1]=L->elem[j];
--L->length;
return 0;
}
//菜单
int main(int argc, char *argv[]) {
int choice;
while(1){
printf("**********图书信息管理*******\n");
printf("1.初始化\n ");
printf("2.图书信息输入\n ");
printf(" 3.图书信息输出\n ");
printf(" 4.查找\n ");
printf(" 5.插入\n ");
printf(" 6.删除\n ");
printf("请输入你的选择:");
scanf("%d",&choice);
if(choice==0)break;
else{
switch(choice){
case 1:Initlist(&L);break;
case 2:Inputelem(&L);break;
case 3:outputelem(&L);break;
case 4:searchlist(&L);break;
}
}
}
return 0;
}