将两个顺序表合为一个顺序表,但是为什么输出的是地址0.0请教
//是按照非递减顺序来的//#include <stdio.h>
#include <malloc.h>
#define N 5
#define M 10
typedef struct
{
int data[N];
}a;
typedef struct
{
int data[N];
}b;
typedef struct
{
int data[M];
}c;
void Initlist(a *L1,b *L2,c *L)
{
int i=0,j=0,t=0,p=0;
L1=(a *)malloc(sizeof(a));
L2=(b *)malloc(sizeof(b));
L=(c *)malloc(sizeof(c));
for(i=0;i<N;i++)
{
scanf("%3d",&L1->data[i]);
}
for(j=0;j<N;j++)
{
scanf("%3d",&L2->data[j]);
}
for(i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
if(L1->data[j]<L1->data[j])
{
t=L1->data[j];
L1->data[j]=L1->data[j+1];
L1->data[j+1]=t;
}
}
}
for(i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
if(L2->data[j]<L1->data[j])
{
t=L2->data[j];
L2->data[j]=L2->data[j+1];
L2->data[j+1]=t;
}
}
}
while(L->data[0]!='/0')
{
p=M;
if(L1->data[i]>L2->data[i])
{
L->data[M]=L1->data[i];
}
else if(L1->data[i]<L2->data[i])
{
L->data[p]=L2->data[i];
}
p--;
i++;
if(i==N)
{
break;
}
}
for(i=0;i<M;i++)
{
printf("%3d",L->data[i]);
}
}
main()
{
a *L1;
b *L2;
c *L;
Initlist(L1,L2,L);
getchar();
getchar();
}
[此贴子已经被作者于2016-12-6 09:34编辑过]