/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目4 -删除元素在[x,y]之间的所有元素” *作 者:邵雪源 *完成日期:2017年9月17日 *版 本 号:v1.0 */ #include <stdio.h> #include <stdlib.h> typedef struct { int date[10]; int length; }SQ; void CreateList(SQ *&L,int a[],int n) { L=(SQ *)malloc(sizeof(SQ)); for(int i=0;i<n;++i) { L->date[i]=a[i]; L->length=n; } } void DeleteList(SQ *&L,int x,int y) { x=x-1; if(y-x+1==L->length) { L->length=0; return ; } else for(int i=y;i<L->length;++i) L->date[x++]=L->date[i]; L->length-=y-x+2; } void DisplayList(SQ *&L) { if(L->length==0) return ; for(int i=0;i<L->length;++i) { if(i==0) printf("%d",L->date[i]); else printf(" %d",L->date[i]); } printf(" "); } int main() { SQ *L; int a[10]={1,2,3,4,5,6,7,8,9,10}; CreateList(L,a,10); DisplayList(L); DeleteList(L,2,8); DisplayList(L);} /*//附:两种形式 struct SQ { int date[10]; int length; }; struct SQ *CreateList(SQ *&L,int a[],int n) typedef struct { int date[10]; int length; }SQ; void CreateList(SQ *&L,int a[],int n)//还必须要加typedef?*/