#include <stdio.h>
using namespace std;
#define Max 50
/*
上一题是有序表
定义的线性表是无序表
删除在某个区域的数
删除的区域包含我们定义的数,也要删
*/
struct SqlList {
int a [Max] = {5,6,8,9,9,8,4,6,9,2,3,8,1,3,6};
int length = 15;
};
void del(SqlList &s,int x,int y) {
int k=0;
if(s.length==0) {
printf("数组为空");
}
if(x>y) {
printf("区域错误\n");
return;
} else if(x>s.a[s.length-1]) {
printf("没有符合规定区域的数\n");
return;
}
for(int i=0; i<s.length; i++) {
if(x<=s.a[i]&&y>=s.a[i]) {
k++;
} else {
s.a[i-k]=s.a[i];
}
}
s.length=s.length-k;
}
int main() {
SqlList s;
printf("原来的数组为:\n");
for(int i=0; i<s.length; i++) {
printf("%d ",s.a[i]);
}
del(s,5,12);
printf("现在的数组为:\n");
for(int i=0; i<s.length; i++) {
printf("%d ",s.a[i]);
}
}