2021-04-14

求大神帮忙
在调试的时候显示program receive signal SIGSEGV.怎么办
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <stdbool.h>
typedef int elemtype;
int menu()
{ int c=0;
printf(“0.exit\n”); printf(“1.insert\n”); printf(“2.delete\n”); printf(“3.input\n”); printf(“4.output\n”);
printf("----------------------------\n");
printf(“请输入选项:”);
do{ scanf("%c",&c); }while((c>=‘0’&&c<‘4’));
return c;}
typedef struct node
{ elemtype data;
struct node *next;
}node,*linklist;
void input(linklist l,int n)
{ int i;
int a[i];
linklist p;
l=(linklist)malloc(sizeof(node));
p=(linklist)malloc(sizeof(node));
l->next = NULL;
for(i=0;i<n;i++)
{ printf(“第%d个:”,i);
scanf("%d",a[i]);
p->data=a[i];
p->next = l->next;
l->next = p;
}
}
void output(linklist l)
{ printf(“表中的内容为:\n”);
linklist p;
p=l->next;
while§
{ printf("%d",p->data);
p=p->next;
printf("\n");
}
}
bool insert(linklist l)
{ linklist s;
int j,i,e;
j=1;
printf(“输入要插入元素的位置:”);
scanf("%d",&i);
printf(“输入要插入的元素:”);
scanf("%d",&e);
while(l && j<i)
{ l=l->next; ++j; } i
f (!l || (j>i-1)) return false;
s=(linklist)malloc(sizeof(node));
s->data=e;
s->next=l->next;
l->next=s;
return true;}
bool delete(linklist l ,int i)
{ int j;
linklist p,q;
p=l;
j=1;
while(p->next && j<i)
{ p=p->next; ++j; }
if (!(p->next)||j>i) return false;
q=p->next;
p->next = q->next;
free(q);
return true;
}
int main()
{ linklist l=NULL;
int key =1;
int i,n;
while (key)
{ switch(menu())
{ case ‘1’:{
insert(l);
output(l);
} break;
case ‘2’:{
printf(“输入要删除的位置:”);
scanf("%d",&i);
delete(l , i);
output(l);
}break;
case ‘3’:{
printf(“请输入元素个数:”);
scanf("%d",n);
input(l,n);
output(l);
}break;
case ‘4’: {
output(l);
}break;
case ‘0’:key=0;
}
} return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值