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;//指向下一个节点的指针
    };
    之前

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R