#include <stdio.h>
#define MAXLENGTH 1000
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType data[MAXLENGTH];
int length;
}SqList;
//元素插入操作
//i表示要插入的位置
Status InitElem(SqList *L,int i,ElemType e)
{
int k;
if(L->length==MAXLENGTH)
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;
}
void main()
{
SqList lt1,lt2;
int n1,n2,n3,i,j=0,k=1;
printf("请输入表1的元素个数:");
scanf("%d",&n1);
lt1.length=n1;
printf("按从小到大的顺序逐个输入元素的值:");
for(i=0;i<lt1.length;i++)
scanf("%d",<1.data[i]);
printf("请输入表2的元素个数:");
scanf("%d",&n2);
lt2.length=n2;
printf("按从小到大的顺序逐个输入元素的值:");
for(i=0;i<lt2.length;i++)
scanf("%d",<2.data[i]);
/*lt1.length=3;
lt1.data[0]=1;
lt1.data[1]=3;
lt1.data[2]=5;
lt2.length=4;
lt2.data[0]=2;
lt2.data[1]=4;
lt2.data[2]=6;
lt2.data[3]=8;*/
for(i=0;i<lt2.length;i++)
{
for(;j<lt1.length;j++)
{
if(lt2.data[i]>=lt1.data[j]&<2.data[i]<=lt1.data[j+1])
{
InitElem(<1,j+2,lt2.data[i]);
break;
}
}
if(j==lt1.length)
{
InitElem(<1,j+1,lt2.data[i]);
j++;
}
}
for(i=0;i<lt1.length;i++)
printf("%d ",lt1.data[i]);
if((i+1)%10==0)
printf("\n");
}
|