为什么Multiply函数无法运行?p r结点增生找不到问题啊
主要问题是multiply函数那,其它部分之前运行过没问题了。
ChatGPT问过多次了得不到有效答案
#include <stdio.h>
#include <stdlib.h>
typedef struct pNode{
int coef; //x系数域
int exp; //指数域
struct pNode* link; //指针域
}PNode;
typedef struct polynominal{
PNode *head;
}Polynominal;
void Creat(Polynominal *h);
void Multiply(Polynominal *h,Polynominal *j);
int main()
{
Polynominal *p,*q;
p=(Polynominal*)malloc(sizeof(Polynominal));
q=(Polynominal*)malloc(sizeof(Polynominal));
Creat(p);
Creat(q);
Multiply(p,q);
return 0;
}
void Creat(Polynominal *h)
{
...
}
void Multiply(Polynominal *h,Polynominal *j)
{
Polynominal *k;PNode *p,*q,*r;
q=j->head->link;
k=(Polynominal*)malloc(sizeof(Polynominal));
k->head->exp=-1;
k->head->link=k->head;
p=k->head;
do{
r=(PNode*)malloc(sizeof(PNode));
r->coef=q->coef;
r->exp=q->exp; //将q指向的值赋值给r
r->link=p->link;
p->link=r;
q=q->link;
}while(q->link!=j->head);
printf("\n检查\n");
p=k->head->link;
do{
printf("%d*x^%d",p->coef,p->exp);
if(p->link->coef>0&&p->link!=k->head)
printf("+");
p=p->link;
}while(p->link!=k->head);
printf("\n");
}