[求助]线性表合并。错在哪?
将线性表b的元素插到线性表a的后面去!#include<stdio.h>
#define datatype1 int
#define maxsize 20
typedef struct
{
datatype1 datas[maxsize];
int last;
}sequenlist;
/*初始化操作函数*/
void init_sequelist(sequenlist *s)
{
int k;
for(k=0;k<maxsize;k++)
s->datas[k]=0;
s->last=0;
}
/*线性表联合*/
void unite(sequenlist *a,sequenlist *b)
{
int i;
for(i=0;i<b->last;i++)
{
a->datas[a->last+i]=b->datas[i];
a->last++;
}
printf("合并后线性表的内容是:\n");
for(i=0;i<a->last;i++)
printf("%d ",a->datas[i]);
printf("\n");
}
void main()
{
sequenlist ls1,*a=&ls1;
sequenlist ls2,*b=&ls2;
int k,m,n;
datatype1 x;
init_sequelist(a);
init_sequelist(b);
printf("请输入线性表的长度,注:不能超过%d\n",maxsize);
scanf("%d",&n);
ls1.last=n;
scanf("%d",&m);
ls2.last=m;
printf("\n请一一输入线性表的各个元素值:\n");
for(k=0;k<ls1.last;k++)
scanf("%d",&ls1.datas[k]);
printf("\n");
printf("\n请一一输入线性表的各个元素值:\n");
for(k=0;k<ls2.last;k++)
scanf("%d",&ls2.datas[k]);
printf("\n");
unite(a,b);
}
====================================================================
我觉得我的算法没有错误呀。
为何出错呢?错在哪?
各位大哥帮帮我吧~~~
=====================================================================