设顺序表L中的数据元素递增有序,试编写算法删除表中所有大于k1而小于k2的元素(k1<k2)
#include<stdio.h>#include<stdlib.h>
#define MAX 10
typedef struct
{int *data;
int last;
} Seqlist;//定义一个顺序表:seqlist L
int init_Seqlist(Seqlist *L)
{
L->data=(int*)malloc(MAX*sizeof(int));
L->last=0;
return 1;
}
Seqlist delete_Seqlist(Seqlist *L,int k1,int k2)
{int i=0,j;
if(k1>=k2||k1>L->data[MAX-1]||k2<L->data[0])
printf("输入错误!");
else
while(L->data[i]<=k1)
i++;//从i开始一直删除
j=i;
while(j<MAX)
{if(L->data[j]<=k2)
j++;//从j开始后面的数保留
for(j;j<MAX;j++)
{L->data[i]=L->data[j];
L->last--;}
}
return *L;
}
Seqlist *L;
int main()
{int init_Seqlist(Seqlist *L);
int i=0,k1,k2;
for(i=0;i<MAX;i++)
L->data[i]=i;
printf("请输入k1,k2:\t");
scanf("%d%d",&k1,&k2);
delete_Seqlist(L,k1,k2);
for(i=0;i<L->last;i++)
printf("删除后的链表为:%d",L->data[i]);
return 0;
}求教大神帮看看哪里错了,编译没有报错,就是执行不了。。。