请教一个问题(合并排序)
#include<stdio.h>#include<stdlib.h>
main()
{
int La[]={3,5,8,11},Lb[]={2,6,8,9,11,15,20};
int La_len,Lb_len,i=0,j=0,k=0,*Lc;
for(La_len=0;La[La_len];La_len++);
for(Lb_len=0;Lb[Lb_len];Lb_len++);
Lc=(int *)malloc((La_len+Lb_len)*sizeof(int));
while(i<La_len&&j<Lb_len)
{
if(La[i]>Lb[j])
Lc[k++]=Lb[j++];
else
Lc[k++]=La[i++];
}
while(i<La_len) Lc[k++]=La[i++];
while(j<Lb_len) Lc[k++]=Lb[j++];
for(k=0;k<La_len+Lb_len;k++)
{
printf("%d ",Lc[k]);
}
free(Lc);
Lc=NULL;
}
错在哪了?
[[it] 本帖最后由 liyanhong 于 2008-10-15 11:53 编辑 [/it]]