在已经排好序的线性表中插入一个数,还是升序
#include<stdio.h>
#define Maxsize 100
typedef struct s
{int elem[Maxsize];int last;
}Seqlist;
int Locate(Seqlist l,int e)//查找
{int i=0;while(i<=l.last&&l.elem[i]<=e)i++;if(i==l.last)return l.last;if(i<l.last)return i;
}
int InsList(Seqlist *l,int e,int i)//插入
{int k;if(l->last==Maxsize-1){return 0;}if(i==l->last){l->elem[l->last]=e;return 1;}else{for(k=l->last;k>=i-1;k--){l->elem[k+1]=l->elem[k];}l->elem[i]=e;//l->last++;return 1; }
}
int main()
{Seqlist l;l.last=0;int m,i,n,k;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&l.elem[i]);l.last++;}scanf("%d",&m);k=Locate(l,m);InsList(&l,m,k);for(i=0;i<=l.last;i++){printf("%d ",l.elem[i]);}printf("\n");return 0;
}