代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 1000
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int ElemType;
typedef struct ListNode{
ElemType data[ MAXSIZE] ;
int length;
} * SqList;
SqList InitList ( ) {
SqList L;
L= ( SqList) malloc ( sizeof ( struct ListNode) ) ;
L-> length= 0 ;
return L;
}
Status ListInsert ( SqList L, int i, ElemType e) {
int k;
if ( L-> length== MAXSIZE) {
return ERROR;
}
if ( i< 1 || i> L-> length+ 1 ) {
return ERROR;
}
if ( i<= L-> length) {
for ( k= L-> length- 1 ; k>= i- 1 ; k-- ) {
L-> data[ k+ 1 ] = L-> data[ k] ;
}
}
L-> data[ i- 1 ] = e;
L-> length++ ;
return OK;
}
Status ListDelete ( SqList L, int i) {
int k;
if ( L-> length== 0 ) {
return ERROR;
}
if ( i< 1 || i> L-> length) {
return ERROR;
}
if ( i< L-> length) {
for ( k= i; k< L-> length; k++ ) {
L-> data[ k- 1 ] = L-> data[ k] ;
}
}
L-> length-- ;
return OK;
}
void Ans ( SqList L, int x, int y) {
int i;
for ( i= 0 ; i< L-> length; i++ ) {
if ( L-> data[ i] >= x&& L-> data[ i] <= y) {
ListDelete ( L, i+ 1 ) ;
i-- ;
}
}
}
Status Output ( SqList L) {
int i;
for ( i= 0 ; i< L-> length- 1 ; i++ ) {
printf ( "%d " , L-> data[ i] ) ;
}
printf ( "%d\n" , L-> data[ L-> length- 1 ] ) ;
return OK;
}
int main ( ) {
SqList L;
L= InitList ( ) ;
int m, x, y, n;
scanf ( "%d" , & m) ;
for ( int i= 1 ; i<= m; i++ ) {
scanf ( "%d" , & n) ;
ListInsert ( L, i, n) ;
}
scanf ( "%d%d" , & x, & y) ;
Ans ( L, x, y) ;
Output ( L) ;
return 0 ;
}