为什么第37行改成if(j=k),程序就出错,明明j不可能大于k啊

//求集合A和B的交集
#include
#include

#define MAXSIZE 100

/*
顺序表结构体定义
*/
typedef struct node {
int data[MAXSIZE];
int length;
}SeqList,*PSeqList;

/*
顺序表的初始化
*/
PSeqList Init_SeqList(void)
{
PSeqList PL;
PL=(PSeqList)malloc(sizeof(SeqList));
if(PL)
PL->length=0;
return PL;
}
void Inter_Sec(PSeqList A,PSeqList B)
{
int i=0,j;
int k=B->length;
while(ilength)
{
int x=A->data[i];
j=0;
while(jdata[j])
j++;
if(j>=k)
{
for(int m=i;mlength;m++)
A->data[m]=A->data[m+1];
A->length--;
}
else
i++;
}
}

int main()
{
int i;
PSeqList A=Init_SeqList();
PSeqList B=Init_SeqList();
A->length=6;
B->length=5;
for(i=0;i A->data[i]=i+1;
for(i=0;i B->data[i]=i-1;
Inter_Sec(A,B);
for(i=0;ilength;i++)
printf("%d ",A->data[i]);
getchar();
return 0;
}

2个回答

j==k j=k?

难道你不会单步调试么?仔细检查下,看能看出问题么?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐