这应该是数据结构的题目吧。这题是上课时我同学和我讨论的,当时没用线性表,只是用数组(栈)解决了。现在改用线性表试试,还不是很熟悉。
code:
#include<stdio.h>
#include<stdlib.h> //或者是 #include<malloc.h> 的头文件
#define N 10
struct Sqlist
{
int *elem;
int length;
int listsize;
}L;
int DeleteK(struct Sqlist *L, int j, int k)
{
int i;
for(i = 0; i <= L->length-j-k; i++) //i=0,而不是i=1,因为第i个是起始元素
L->elem[i+j-1] = L->elem[j+k+i-1];
L->length -= k;
return 0;
}
int main()
{
int i, j, k;
L.listsize = N;
L.elem = (int *)malloc(sizeof(int) * L.listsize); //申请listsize个大小为整型(int)字节的空间
printf("输入原始线性表:\n");
for(i = 0; i < N ;i++)
scanf("%d", &L.elem[i]);
L.length = L.listsize;
printf("\n输入起始位置:");
scanf("%d", &j);
printf("\n输入要删除元素的个数:");
scanf("%d", &k);
DeleteK(&L, j, k);
for(i = 0; i < N-k; i++)
printf("%d ", L.elem[i]);
return 0;
}