c/c++合并非递减线性表求看程序哪里出有关问题
c/c++合并非递减线性表求看程序哪里出问题
------解决思路----------------------
while(LA.data[i]!=NULL)这里有问题, 这个又不是指针,跟NULL比没意义, 就算是当0, Seqlist也没有初始化为0
#include<stdio.h>
typedef struct
{
float data[100];
int length;
}Seqlist;
Seqlist MergeSeqlist(Seqlist LA,Seqlist LB)
{
Seqlist LC;
int i=0,j=0,k=0;
while(i<LA.length&&j<LB.length)
{
if(LA.data[i]<=LB.data[j])
LC.data[k++]=LA.data[i++];
else LC.data[k++]=LA.data[j++];
}
while(LA.data[i]!=NULL)
{
LC.data[k++]=LA.data[i++];
}
while(LB.data[j]!=NULL)
{
LC.data[k++]=LB.data[j++];
}
LC.length=LA.length+LB.length;
return LC;
}
void ListTraverse(Seqlist L)
{
int i=0;
while(i<L.length)
{printf("%f ",L.data[i++]);
}
}
Seqlist Create(int n)
{
Seqlist L;
int i=0;
L.length=n;
while(i<L.length)
{printf("ÇëÊäÈë˳Ðò±íµÚ%d¸öÔªËØ:\n",i+1);
scanf("%f",&L.data[i]);
i++;
}return L;
}
void main()
{
Seqlist LA=Create(3);
Seqlist LB=Create(4);
printf("\n");
Seqlist LC=MergeSeqlist(LA,LB);
ListTraverse(LC);
printf("\n");
}
------解决思路----------------------
while(LA.data[i]!=NULL)这里有问题, 这个又不是指针,跟NULL比没意义, 就算是当0, Seqlist也没有初始化为0