请问高人,关于用连表进行多项式加减
请教高人,关于用连表进行多项式加减
//按照指数降序排列建立并输出多项式,完成相加相减。
//我运行了好象输入输出都没问题,加法也没问题,减法就不对了。请教高人,谢谢
#include "iostream.h "
#include <iomanip>
using namespace std;
typedef struct node //链表结构体
{
int coef; //系数
int exp; //次数
struct node *next;
}Node;
Node *poly_create(); //创建多项式
void poly_show(Node *LA); //显示多项式
Node *poly_add(Node *LA,Node *LB);//多项式A+B
Node *poly_sub(Node *LA,Node *LB);//多项式A-B
int main()
{
Node *LA,*LB,*LC,*LD;
printf( "建立一个多项式A!\n "); //创建A
LA=poly_create();
printf( "建立一个多项式B!\n "); //创建B
LB=poly_create();
printf( "A: "); //显示A
poly_show(LA);
printf( "B: "); //显示B
poly_show(LB);
printf( "A+B: "); //A+B
LC=poly_add(LA,LB);
poly_show(LC);
printf( "A-B: "); //A-B
LD=poly_sub(LA,LB);
poly_show(LD);
return 0;
}
Node *poly_create() //创建多项式
{
Node *LA,*pa;
LA=(Node *)malloc(sizeof(Node)); //初始化头节点
LA-> next=(Node *)malloc(sizeof(Node)); //生成次节点
pa=LA-> next; //pa指向次节点
printf( "请输入多项式的项数: ");
int n;scanf( "%d ",&n);
for(int i=1;i <n;i++) //逐项输入多项式的n-1项
{
printf( "请输入第%d项系数: ",i);
scanf( "%d ",&pa-> coef);
printf( "指数: ");
scanf( "%d ",&pa-> exp);
pa-> next=(Node*)malloc(sizeof(Node));
pa=pa-> next;
}
printf( "请输入第%d项系数: ",i); //输入第n项
scanf( "%d ",&pa-> coef);
//按照指数降序排列建立并输出多项式,完成相加相减。
//我运行了好象输入输出都没问题,加法也没问题,减法就不对了。请教高人,谢谢
#include "iostream.h "
#include <iomanip>
using namespace std;
typedef struct node //链表结构体
{
int coef; //系数
int exp; //次数
struct node *next;
}Node;
Node *poly_create(); //创建多项式
void poly_show(Node *LA); //显示多项式
Node *poly_add(Node *LA,Node *LB);//多项式A+B
Node *poly_sub(Node *LA,Node *LB);//多项式A-B
int main()
{
Node *LA,*LB,*LC,*LD;
printf( "建立一个多项式A!\n "); //创建A
LA=poly_create();
printf( "建立一个多项式B!\n "); //创建B
LB=poly_create();
printf( "A: "); //显示A
poly_show(LA);
printf( "B: "); //显示B
poly_show(LB);
printf( "A+B: "); //A+B
LC=poly_add(LA,LB);
poly_show(LC);
printf( "A-B: "); //A-B
LD=poly_sub(LA,LB);
poly_show(LD);
return 0;
}
Node *poly_create() //创建多项式
{
Node *LA,*pa;
LA=(Node *)malloc(sizeof(Node)); //初始化头节点
LA-> next=(Node *)malloc(sizeof(Node)); //生成次节点
pa=LA-> next; //pa指向次节点
printf( "请输入多项式的项数: ");
int n;scanf( "%d ",&n);
for(int i=1;i <n;i++) //逐项输入多项式的n-1项
{
printf( "请输入第%d项系数: ",i);
scanf( "%d ",&pa-> coef);
printf( "指数: ");
scanf( "%d ",&pa-> exp);
pa-> next=(Node*)malloc(sizeof(Node));
pa=pa-> next;
}
printf( "请输入第%d项系数: ",i); //输入第n项
scanf( "%d ",&pa-> coef);