数据结构课后习题答案(P195)_第二题。

要求以较高的效率实现删除线性表中元素值在x~y(x和y自定)之间的所有元素。

#include<stdio.h> 
#include<stdlib.h>
#define X 10
#define Y 30
#define N 20
int A[N]={2,5,15,30,1,40,17,50,9,21,32,8,41,22,49,31,33,18,80,5};
void  del(int *A,int *n,int x,int y)
{
	int i,j=0;
	for(i=0;i<*n;i++)
	{
		if(A[i]>y||A[i]<x)
		A[j++]=A[i];	
	}
	*n=j;
}
void output(int *A,int n)
{
	int i;
	printf("\n数组有%d个元素:\n",n);
	for(i=0;i<n;i++){
		printf("%3d",A[i]);
		if((i+1)%10==0)
		printf("\n");
	}
	printf("\n");
 } 
int main()
{
	int n;
	n=N;
	output(A,n);
	del(A,&n,X,Y);
	output(A,n);
	return 0;
}

运行结果

猜你喜欢

转载自blog.csdn.net/qq_41709044/article/details/83278184