⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 一元稀疏多项式计算器.txt

📁 一元稀疏多项式计算器
💻 TXT
字号:
#include<stdio.h> 
#include<malloc.h>
typedef struct pnode /* 定义指针*/
{int coef; /*定义系数*/
 int exp; /*定义指数*/
struct pnode *next;
}pnode;

pnode * creat() /*creat函数用来存放多项*/
{int m,n;
pnode *head,*rear,*s;
head=(pnode*)malloc(sizeof(pnode));
rear=head;
printf("\n输入指数(按递增顺序入)");
scanf("%d",&m);
printf("输入一元式系数(0为退出)");
scanf("%d",&n);
do
{s=(pnode *)malloc(sizeof(pnode));
 s->coef=n; /*n为系数*/
 s->exp=m; /*m为指数*/
 rear->next=s;
 s->next=NULL;
 rear=s;
 printf("\n输入指数(按递增顺序输入)");
 scanf("%d",&m);
 printf("输入一元式系数(0为退出)");
 scanf("%d",&n);
}
while(n);
return head;
}


pnode * add(pnode *heada,pnode *headb)
{pnode *headc,*a,*b,*s,*rearc;
int sum;
a=heada->next;b=headb->next;
headc=(pnode*)malloc(sizeof(pnode));
rearc=headc;/*多项式的存放//都放到s中里*/
while(a!=NULL&&b!=NULL) /*指数相等,则系数相加。*/
{
 if(a->exp==b->exp)
  {
   sum=a->coef+b->coef;
    if(sum)
    {s=(pnode*)malloc(sizeof(pnode));
     s->coef=sum;
     s->exp=a->exp;
     rearc->next=s;
     rearc=s;
     a=a->next;
     b=b->next;
    }
else
   {a=a->next;b=b->next;
   }
  }
else if(a->exp<b->exp) /*a指数如果小于b,则a放到s中*/
{
 s=(pnode*)malloc(sizeof(pnode));
 s->coef=a->coef;
 s->exp=a->exp;
 rearc->next=s; /*用下一个结点s取代下一个c*/
 rearc=s;
 a=a->next;
}
 else /*如果a的指数大,则b放到s中*/
 {
  s=(pnode*)malloc(sizeof(pnode));
  s->coef=b->coef;
  s->exp=b->exp;
  rearc->next=s;
  rearc=s;
  b=b->next;
 }
}
if(a)
{while(a!=NULL) /*b空了放a中的项*/
{s=(pnode*)malloc(sizeof(pnode));
s->coef=a->coef;
s->exp=a->exp;
rearc->next=s;
s->next=NULL;
rearc=s;
a=a->next;}}
else if(b){while(b!=NULL) /*a空了放b中的项*/
{s=(pnode *)malloc(sizeof(pnode));
s->coef=b->coef;
s->exp=b->exp;
rearc->next=s;
s->next=NULL;
rearc=s;
b=b->next;
}
}
return headc;
}


void main()
{pnode *a,*b,*c;
printf("建立A:");
a=creat();
printf("\n建立B:");
b=creat();

c=add(a,b);
c=c->next;
printf("%dx^%d",c->coef,c->exp);
c=c->next;
while(c!=NULL)
{printf("+%dx^%d",c->coef,c->exp);
c=c->next;
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -