请大家帮我看看,怎么只可以删除s,t,中间的删除不了呢?
#includestdio.h
#includestdlib.h
#define list_init_size100
typedef struct
{
int*elem;
int length;
int listsize;
}sqlist;
//建立一个空表
initlist_sq(sqlist
l.length=0;
l.listsize=list_init_size;
return true;
}
//在position1处插入value1这个值
listinsert1_sq(sqlist
q=
for(p=p=q;--p)
*(p 1)=*p;
*q=value1;
l.length;
return true;
}
//删除下标为position2的数据
listdele_sq(sqlist
for(p=pp)
{
*p=*(p 1);
}
return true;
}
//主函数
void main()
{
sqlist list1;
initlist_sq(list1);
int number1,data1,s,t,count=0;
printf(\"请输入要输入的数据个数:\\n\");
scanf(\"%d\",
if(number1==0)
{
printf(\"顺序表为空表\\n\");
return;
}
printf(\"请依次输入要输入的数据:\\n\");
for(int i1=0;i1number1;i1)
{
scanf(\"%d\",
listinsert1_sq(list1,i1,data1);
}
printf(\"请依次输入要删除的数据段的最小值与最大值:\\n\");
scanf(\"%d\",
scanf(\"%d\",////////////这里出错,好奇怪,前一个输入没有问题,这里怎么会报错呢?
for(int i3=0;i3list1.length;i3)
{
if(list1.elem[i3]=s=t)
{
listdele_sq(list1,i3);
count;
}
}
for(int i4=0;i4list1.length-count;i4)
{
printf(\"%d\",list1.elem[i4]);
}
}
|