程序代码:
#include<stdio.h>
#define N 8
int lns(int *,int ,int );
int my_del(int *,int ,int);
void print(int *,int);
int main(void)
{
int a[N]={1,3,5,7};
int i,n,k,elsm;
print(a,4);
n=4;
while(1)
{
printf("input elsm > :");
if((scanf("%d",&elsm))!=1)
{
break;
}
k=lns(a,n,elsm);
if(!k)
{
break;
}
n=k;
print(a,n);
}
print(a,n);
while(getchar()!='\n')
;
while(1)
{
printf("delete,input elsm > :");
if((scanf("%d",&elsm))!=1)
{
break;
}
k=my_del(a,n,elsm);
if(!k)
{
break;
}
n=k;
print(a,n);
}
print(a,n);
return 0;
}
int lns(int *a,int n,int elsm)
{
int i,j;
if(n>=N)
{
return 0;
}
for(i=0;i<n&&a[i]<elsm;++i)
;
for(j=n;j>i;--j)
{
a[j]=a[j-1];
}
a[i]=elsm;
return n+1;
}
int my_del(int *a,int n,int elsm)
{
int i,j,k;
printf("elsm=%d\n",elsm);
if(n==0)
{
return 0;
}
for(i=j=0,k=1;j<n;++i,++j)
{
if(a[i]!=elsm)
{
a[i]=a[j];
}
else
{
a[i]=a[j+1];
++j;
k=0;
}
}
return k?0:n-1;
}
void print(int *a,int n)
{
int i;
for(i=0;i<n;++i)
{
printf("%-4d",a[i]);
}
puts("");
}