void modify1(Gun *h,int gcoding,int gtime,char *gname,char *gattribute)
{
Gun *gun;
int isfound=0;
gun=h->next;
Gun *newnode;
/*while(gun!=NULL)
{
if(gun->coding==gcoding)
{
newnode->time=gtime;
strcpy(gun->name,gname);
strcpy(gun->attribute,gattribute);
isfound=1;
break;
}
else
gun=gun->next;
}*/
if(isfound==0)
{
insert2(h);
printf("【此军械信息已经修改成功】\n\n");
}
else
printf("【没有找到此军械信息,无法修改!请及时处理!!!】\n\n");
}
void modify(Gun *h)
{
int gcoding,gtime;
char gname[20],gattribute[20];
printf("【请填写要修改枪支的编码】\n\n");
scanf("%d",&gcoding);
printf("【请填写修改枪支的信息,请用空格隔开:】\n\n");
printf("【入库时间】【军械名称】【军械属性】\n\n");
scanf("%d %s %s",gtime,gname,gattribute);
modify1(h,gcoding,gtime,gname,gattribute);
}
//查询军械信息
应该是你的insert写错了,程序执行inser直接异常退出了
供参考:
void modify1(Gun* h, int gcoding, int gtime, char* gname, char* gattribute)
{
Gun* gun;
int isfound = 0;
gun = h->next;
//Gun* newnode; 修改
while (gun != NULL)
{
if(gun->coding==gcoding)
{
gun->time = gtime; //newnode->time=gtime; 修改
strcpy(gun->name,gname);
strcpy(gun->attribute,gattribute);
isfound = 1;
break;
}
//else 修改
gun = gun->next;
}
if (isfound != 0) //if (isfound == 0) 修改
{
//insert2(h);
printf("【此军械信息已经修改成功】\n\n");
}
else
printf("【没有找到此军械信息,无法修改!请及时处理!!!】\n\n");
}
void modify(Gun* h)
{
int gcoding, gtime;
char gname[20], gattribute[20];
printf("【请填写要修改枪支的编码】\n\n");
scanf("%d", &gcoding);
printf("【请填写修改枪支的信息,请用空格隔开:】\n\n");
printf("【入库时间】【军械名称】【军械属性】\n\n");
scanf("%d %s %s", >ime, gname, gattribute);
//scanf("%d %s %s", gtime, gname, gattribute);修改
modify1(h, gcoding, gtime, gname, gattribute);
}
输入少了一个&,看看是不是这个问题。
scanf("%d %s %s",gtime,gname,gattribute);
改成:
scanf("%d %s %s",>ime,gname,gattribute);