zhuyingluan 2015-12-04 10:16 采纳率: 0%
浏览 1908

C语言 多项式加法中的问题

不知道结果为什么出错,怎么也找不出来
#include
#include

struct PolyNode{
int coef; //系数
int expon; //指数
struct PolyNode *link;//指向下一个节点的指针

};
typedef struct PolyNode *Polynomial;
Polynomial P1, P2, P3, P4,P5;

void Attach(int c, int e, Polynomial *pRear)
{
Polynomial P;
P = (Polynomial)malloc(sizeof(struct PolyNode));
P->coef = c;
P->expon = e;
P->link = NULL;
(*pRear)->link = P;
*pRear = P;
}
int Commpare(int a, int b)
{
if (a>b)
return 1;
else if (a == b)
return 0;
else
return -1;
}
Polynomial PolyAdd(Polynomial P1, Polynomial P2)
{
Polynomial front, rear, temp;
int sum;
rear = (Polynomial)malloc(sizeof(struct PolyNode));
front = rear;
while (P1&&P2)
{
switch (Commpare(P1->expon, P2->expon)){
case 1:
Attach(P1->coef, P1->expon, &rear);
P1 = P1->link;
break;
case -1:
Attach(P2->coef, P2->expon, &rear);
P2 = P2->link;
break;
case 0:
sum = P1->coef + P2->coef;
if (sum)Attach(sum, P1->expon, &rear);
P1 = P1->link;
P2 = P2->link;
break;
}
for (; P1; P1 = P1->link)Attach(P1->coef, P1->expon, &rear);
for (; P2; P2 = P2->link)Attach(P2->coef, P2->expon, &rear);
rear->link = NULL;
temp = front->link;
free(temp);
return front;
}
printf("wrong!");
}
main()
{
P2 = (Polynomial)malloc(sizeof(struct PolyNode));
P2->coef = 1;
P2->expon = 1;
P2->link = NULL;

P1 = (Polynomial)malloc(sizeof(struct PolyNode));
P1->coef = 2;
P1->expon = 2;
P1->link = P2;

P4 = (Polynomial)malloc(sizeof(struct PolyNode));
P4->coef = 1;
P4->expon =1;
P4->link = NULL;

P3 = (Polynomial)malloc(sizeof(struct PolyNode));
P3->coef = 2;
P3->expon = 2;
P3->link =P4;


P5 = (Polynomial)malloc(sizeof(struct PolyNode));

P5 = PolyAdd(P1, P3);

while (P5!=NULL)
{
    printf("%dX%d ", P5->coef, P5->expon);
    P5=P5->link;
}

}

  • 写回答

1条回答 默认 最新

  • SpringHerald 2015-12-04 11:59
    关注

    程序太长我没仔细看
    不过
    typedef struct PolyNode *Polynomial;
    应该放在
    struct PolyNode{
    int coef; //系数
    int expon; //指数
    struct PolyNode *link;//指向下一个节点的指针
    };
    之前

    评论

报告相同问题?

悬赏问题

  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播