初学者, 小女子被书上一算法难住了
算法弄成c之后还是报错 但是找不出错误的说#include<stdio.h>
#include<malloc.h>
typedef struct{
int *al;
int l;
int ls;
}sq;
int init(sq&L)
{
L.al=(int*)malloc(100*sizeof(int));
if(!L.al)printf("0");
L.l=0;
L.ls=100;
return 1;
}
int hb(sq La,sq Lb, sq &Lc)
{int pa,pb,pc,m,n;
int i;
pa=La.al;
pb=Lb.al;
Lc.ls=Lc.l=La.l+Lb.l;
pc=Lc.al=(int*)malloc(Lc.ls*sizeof(int));
if(!Lc.al)printf("0");
m=La.al+La.l-1;
n=Lb.al+Lb.l-1;
while(pa<=m&&pb<=n)
{if(*pa<=*pb)*pc++=*pa++;
else *pc++=*pb++;}
while(pa<=m) *(pc++)=*(pa++);
while(pb<=n) *(pc++)=*(pb++);
}
main()
{sq La,Lb,Lc;int i;
init(La);
init(Lb);
printf("请输入La表元素的个数\n");
scanf("%d",&La.l);
for(i=0;i<La.l;i++)
scanf("%d",&La.al[i]);
printf("输入Lb表元素个数\n");
scanf("%d",&Lb.l);
for(i=0;i<Lb.l;i++)
scanf("%d",&Lb.al[i]);
printf("La的元素为:\n");
for(i=0;i<La.l;i++)
printf("%d ",La.al[i]);
printf("\nLb的元素为:\n");
for(i=0;i<Lb.l;i++)
printf("%d ",Lb.al[i]);
hb(La,Lb,Lc);
for(i=0;i<Lc.l;i++)
printf("%d",Lc.al[i]);
}