法一:
#include <stdio.h>
#define maxsize 10
typedef struct
{
int data[maxsize];
int length;
}sqlist;
void Del(sqlist& l, int s, int t)
{
int k = 0;
for (int i = 0; i < l.length; i++)
{
if (l.data[i] < s || l.data[i] > t)
l.data[k++] = l.data[i];
}
l.length = k;
}
int main()
{
sqlist l = { {1,2,3,4,5,6,7,8,9},9 };
Del(l, 3, 6);
for (int i = 0; i < l.length; i++)
printf("%d ", l.data[i]);
return 0;
}
法二:
#include <stdio.h>
#define maxsize 10
typedef struct
{
int data[maxsize];
int length;
}sqlist;
void Del(sqlist& l, int s, int t)
{
int k = 0;
for (int 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;
}
int main()
{
sqlist l = { {1,2,3,4,5,6,7,8,9},9 };
Del(l, 3, 6);
for (int i = 0; i < l.length; i++)
printf("%d ", l.data[i]);
return 0;
}