m0_62793944 2022-03-16 18:33 采纳率: 100%
浏览 49
已结题

求康康哪里有问题,哭了

问题遇到的现象和发生背景

现在用带头节点的单链表来存储多项式,链表中的一个节点表示多项式的一项,
节点中coef表示多项式的系数,exp表示多项式的次数,例如5x8用一个节点表
示时,该节点的coef成员值为5,exp值为8。
请设计void polyAdd(PolyList LA, PolyList LB,PolyList LC)函数。
参数:LA,LB指向的链表是带头节点的单链表,链表中的每个数据
节点表示多项式的一项,数据节点已经按指数从大到小排序。
LC指向一个空的带头节点的链表,表示空的多项式。
该函数用来对多项式LA和LB相加,结果保存在多项式LC指向的单链表中。
请注意,本题有预置代码,只需提交所要求的函数定义代码即可。

问题相关代码,请勿粘贴截图

void polyAdd(PolyList LA, PolyList LB,PolyList LC)
{
int sum;
LA=LA->next;
LB=LB->next;
while(LA!=NULL&&LB!=NULL){
if(LA->exp>LB->exp){
LC->next=LA;
LC=LA;
LA=LA->next;
}
if(LA->expexp){
LC->next=LB;
LC=LB;
LB=LB->next;
}
if(LA->exp==LB->exp){
sum=LA->coef+LB->coef;
if(sum!=0){
LC->next->coef=sum;
LC->next->exp=LA->exp;
LC=LC->next;
LA=LA->next;
LB=LB->next;
}
else{
LA=LA->next;
LB=LB->next;
}
}
}
if(LA!=NULL){
LC->next=LA;
}
if(LB!=NULL){
LC->next=LB;
}
if(LA==NULL&&LB==NULL){
LC->next=NULL;
}
}

运行结果及报错内容

Error:Segmentation

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 关注

    while循环中,应该用if else if else语句,不是if if if,如下:

    void polyAdd(PolyList LA, PolyList LB, PolyList LC)
    {
        int sum;
        LA = LA->next;
        LB = LB->next;
        while (LA != NULL && LB != NULL) {
            if (LA->exp > LB->exp) {
                LC->next = LA;
                LC = LA;
                LA = LA->next;
            }
            else if (LA->exp < LB->exp) {
                LC->next = LB;
                LC = LB;
                LB = LB->next;
            }
            else {
                sum = LA->coef + LB->coef;
                if (sum != 0) {
                    LC->next->coef = sum;
                    LC->next->exp = LA->exp;
                    LC = LC->next;
                    LA = LA->next;
                    LB = LB->next;
                }
                else {
                    LA = LA->next;
                    LB = LB->next;
                }
            }
        }
        if (LA != NULL) {
            LC->next = LA;
        }
        if (LB != NULL) {
            LC->next = LB;
        }
        if (LA == NULL && LB == NULL) {
            LC->next = NULL;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月16日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备