从顺序表中删除其值在给定值s和t之间(包含s和t,要求s<t)的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。
> 从有序顺序表中删除其值在给定值s和t之间(要求s<t)的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。
```cpp
# include <stdio.h>
#define MaxSize 10
typedef struct{
int data[MaxSize];
int length;
}SqList;
void InitList(SqList &L){
for(int i=0; i<MaxSize; i++){
L.data[i]=0;
}
L.length=0;
}
void PrintList(SqList L){
for(int i=0; i<L.length; i++){
printf("%d ",L.data[i]);
}
}
//开始写主功能函数
bool DeleteStoT(SqList &L, int s, int t){
int i,k=0;
if(L.length==0||s>=t){
return false;
}
for(i=0;i<L.length;i++){
if(L.data[i]>=s&&L.data[i]<=t){
k++;
}
else{
L.data[i-k]=L.data[i];
}
}
L.length-=k;
return true;
}
int main(){
printf("SqList_Test_4_From_soapcmd\n\n");
//打印标题
SqList L;
//声明顺序表
InitList(L);
//初始化顺序表
L.data[0] = 12;
L.length++;
L.data[1] = -11;
L.length++;
L.data[2] = 23;
L.length++;
L.data[3] = -4;
L.length++;
L.data[4] = -11;
L.length++;
L.data[5] = 9;
L.length++;
L.data[6] = -11;
L.length++;
//插入几个数据
PrintList(L);
//打印更改前顺序表
printf("\n");
//开始删除
int s = -11;
int t = 10;
DeleteStoT(L, s, t);
PrintList(L);
//打印更改后顺序表
return 0;
}