|

楼主 |
发表于 2014-10-4 19:16:12
|
显示全部楼层
- #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");
-
- }
复制代码 |
|