| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 786 人关注过本帖
标题:c语言编写的程序出现停止运行的问题
取消只看楼主 加入收藏
木头人bh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-10-9
结帖率:0
收藏
已结贴  问题点数:10 回复次数:0 
c语言编写的程序出现停止运行的问题
我编写的c程序是一元多项式相加的问题,在运行的时候出现停止程序运行的情况,在de-bug之后发现在下边的AddLink部分出现问题,如果只进行第一步最开始加的那一块没问题,加上while之后的那部分问题就出现了。
# include<stdio.h>
# include<stdlib.h>
struct node{
  int Exp;
  int Coef;
  struct node *link;
} ;

void SetupLink(struct node **H, int e, int c){
     struct node *P, *Q, *X;
     P = (struct node *)malloc(sizeof(struct node));
     P->Exp = e;
     P->Coef = c;
     if (*H != NULL)
     (*H)->link = P;
     else
     *H = P;
}

void AddLink(struct node **CH, struct node **P, struct node **Q){  //应该是这部分出问题了
     struct node *d=0;
     int e,c;
     if ((*P)->Exp == (*Q)->Exp){
          e = (*P)->Exp;
          c = (*P)->Coef+(*Q)->Coef;
          SetupLink(&d,e,c);
          *P = (*P)->link;
          *Q = (*Q)->link;
          *CH = d;        
                   }
     else if ((*P)->Exp >(*Q)->Exp){
          e = (*Q)->Exp;
          c = (*Q)->Coef;
          SetupLink(&d,e,c);  
          *Q = (*Q)->link;
          *CH = d;        
          }
     else {
          e = (*P)->Exp;
          c = (*P)->Coef;
          SetupLink(&d,e,c);  
          *P = (*P)->link;
          *CH = d;
          }
     while (((*P)->link != NULL)&&((*Q)->link != NULL ) ){
     if ((*P)->Exp == (*Q)->Exp){
          e = (*P)->Exp;
          c = (*P)->Coef+(*Q)->Coef;
          SetupLink(&d,e,c);
          *P = (*P)->link;
          *Q = (*Q)->link;
          d = d->link;
                   }
     else if ((*P)->Exp >(*Q)->Exp){
          e = (*Q)->Exp;
          c = (*Q)->Coef;
          SetupLink(&d,e,c);  
          *Q = (*Q)->link;
          d = d->link;        
          }
     else {
          e = (*P)->Exp;
          c = (*P)->Coef;
          SetupLink(&d,e,c);  
          *P = (*P)->link;
          d = d->link;
          }           
           }
     if ((*P)!=NULL){
          while ((*P)!=NULL){
          e = (*P)->Exp;
          c = (*P)->Coef;
          SetupLink(&d,e,c);  
          *P = (*P)->link;
          d = d->link;               
                }
                     }
     else{
          while ((*Q)!=NULL){
          e = (*Q)->Exp;
          c = (*Q)->Coef;
          SetupLink(&d,e,c);  
          *Q = (*Q)->link;
          d = d->link;               
                }
                     }  
     }
搜索更多相关主题的帖子: include 多项式 c语言 c程序 
2014-10-09 19:30
快速回复:c语言编写的程序出现停止运行的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011565 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved