在C语言实现的一元多项式的相加操作中,怎样同时实现合并一个多项式中的同类项?abcddd_1234 06:50:38#include#includetypedef struct Polynode{int coef;int exp;struct Polynode *next;} Polynode;Polynode* polycreate(/*Polynode

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 12:21:22
在C语言实现的一元多项式的相加操作中,怎样同时实现合并一个多项式中的同类项?abcddd_1234 06:50:38#include#includetypedef struct Polynode{int coef;int exp;struct Polynode *next;} Polynode;Polynode* polycreate(/*Polynode

在C语言实现的一元多项式的相加操作中,怎样同时实现合并一个多项式中的同类项?abcddd_1234 06:50:38#include#includetypedef struct Polynode{int coef;int exp;struct Polynode *next;} Polynode;Polynode* polycreate(/*Polynode
在C语言实现的一元多项式的相加操作中,怎样同时实现合并一个多项式中的同类项?
abcddd_1234 06:50:38
#include
#include
typedef struct Polynode
{
int coef;
int exp;
struct Polynode *next;
} Polynode;
Polynode* polycreate(/*Polynode *head*/)
{
Polynode *h,*rear,*s,*temp;
int c,e;
h=(Polynode *)malloc(sizeof(Polynode)); /*建立多项式的头结点*/
h->next = NULL;
scanf("%d%d",&c,&e);/*键入多项式的系数和指数项*/
while(c!=0) /*若c=0,则代表多项式的输入结束*/
{
s=(Polynode*)malloc(sizeof(Polynode)); /*申请新的结点*/
s->coef=c ;
s->exp=e ;
rear = h;//rear不再指向尾节点,而是从头结点开始遍历
temp = rear->next;
while(temp!=NULL && temp->exp expexp>e,否则直到链表结尾
if(rear->exp==temp->exp) {rear->coef+temp->coef;}//此句为合并同类项
else{ rear = temp;
temp = rear->next;
}}
s->next = temp;//插入
rear->next = s;
scanf("%d%d",&c,&e);
}
return(h);
}
void polylist_add(Polynode *head1,Polynode *head2)
{
int sum;Polynode *temp;
Polynode *p=head1->next,*q=head2->next,*r=head1;
while(p!=NULL&&q!=NULL)
{
if(p->expexp) {r->next=p;r=r->next;p=p->next;}
else if(p->exp>q->exp) {r->next=q;r=r->next;q=q->next;}
else {sum=(p->coef)+(q->coef);
if(sum!=0) {p->coef=sum;r->next=p;r=r->next;p=p->next;temp=q;q=q->next;free(temp);}
else {temp=p->next;free(p);p=temp;
temp=q->next;free(q);q=temp;}
}
if(p!=NULL) r->next=p;
else
r->next=q;
}}
void printf_list(Polynode *head)
{
Polynode *p=head->next;
while(p)
{printf("%dx^%d",p->coef,p->exp);if(p->next)
printf("+");p=p->next;}
}
int main()
{
Polynode *head1,*head2;
//clrscr();
head1=polycreate(/*head1*/);
head2=polycreate(/*head2*/);
printf_list(head1);
printf("\n");
printf_list(head2);
printf("\n");
polylist_add(head1,head2);
printf_list(head1);
getchar();
getchar();
return 0;
}
为什么没有实现合并一个多项式中同类项的操作啊?

在C语言实现的一元多项式的相加操作中,怎样同时实现合并一个多项式中的同类项?abcddd_1234 06:50:38#include#includetypedef struct Polynode{int coef;int exp;struct Polynode *next;} Polynode;Polynode* polycreate(/*Polynode
Polynode* polycreate( /* Polynode *head */ ) {
\x05Polynode *h,*rear,*s,*temp;
\x05int c,e;
\x05h = (Polynode*)malloc(sizeof(Polynode)); /* 建立多项式的头结点 */
\x05h->next = NULL;
\x05scanf("%d%d",&c,&e); /* 键入多项式的系数和指数项 */
\x05while (c != 0) /* 若c=0,则代表多项式的输入结束 */ {
\x05\x05rear = h; // rear不再指向尾节点,而是从头结点开始遍历
\x05\x05temp = rear->next;
\x05\x05while (temp != NULL && temp->exp < e) {
\x05\x05\x05rear = temp;
\x05\x05\x05temp = rear->next;
\x05\x05}
\x05\x05if(temp!=NULL&&temp->exp==e)/*如果上面寻找退出时,temp不为空且它的指数和输入指数相同*/
\x05\x05{
\x05\x05\x05temp->coef+=c;
\x05\x05}
\x05\x05else/*这是一个当前多项式没有出现的指数项,新建节点保存*/
\x05\x05{
\x05\x05\x05s = (Polynode*)malloc(sizeof(Polynode)); /* 申请新的结点 */
\x05\x05\x05s->coef = c;
\x05\x05\x05s->exp = e;
\x05\x05\x05s->next = rear->next; // 插入
\x05\x05\x05rear->next = s;
\x05\x05}
\x05\x05scanf("%d%d",&c,&e);
\x05}
\x05return(h);
}
建议scanf("%d%d",&c,&e); 这里分成2句,如果c==0,直接退出录入

在C语言实现的一元多项式的相加操作中,怎样同时实现合并一个多项式中的同类项?abcddd_1234 06:50:38#include#includetypedef struct Polynode{int coef;int exp;struct Polynode *next;} Polynode;Polynode* polycreate(/*Polynode 数据结构(C语言)用单链表存储一元多项式,并实现两个多项式的相加运算 数据结构(C语言) 如何分别用顺序和链式 实现一元多项式的相加? 编写一个程序用单链表存储多项式,并实现两个多项式相加的函数?C/C++语言 如何用C语言实现两个一元多项式的相加和相乘?就是说,加法时如何将它们的同类项相加,乘法时将每一项都与另一个一元多项式相乘.用C语言描述出来,如果可以麻烦将程序大致描述一下. 一元多项式的表示及相加【实验目的】掌握C语言中结构类型和指针类型,指针是逻辑关系的映像.掌握线性链表的操作特点和动态产生、输出单链表的方法.掌握单链表的插入、删除操作的特点 多项式相加C语言 【数据结构】 实现两个多项式的相加、减.要求:输出两个多项式原式,以及计算结果.用C语言…… 一元多项式的计算 能够按照指数降序排列建立并输出多项式 能够完成两个多项式的相加及相减要C语言编写的,能运行的,最好有注释,嘻嘻……请高手赐教啊 用C语言实现一元多项式相乘,求源代码或思想即可,最好能给出三中解法! 数据结构:用链表实现两个多项式相加,用C++或者C语言实现多项式相加,求完整代码输入:第一行输入包含两个整数m,n后续为m行和n行数据m,n分别代表两个多项式的项数后续每一行代表多项式 如何用C语言实现多项式的加法和乘法给定两个多项式,用程序实现这两个多项式的相加和相乘.要求多项式的系数只能取1或者0;同时满足1+1=0;例如给定多项式(1+X)*(1+X)=X2.基本要求:(1)实 设计一个一元多项式简单的计算器(数据结构C语言版)急要求:一元多项式计算器的基本功能定为 (1) 建立多项式 (2) 输出多项式 (3) 两个多项式相加,建立并输出和多项式 (4) 两个多项式相减 C语言2个指针指向的值怎么样实现相加和相乘? C语言写多项式相加怎么写? 一元多项式的实现(C语言)求程序大神帮忙解决一下数据结构的练习.要求:1)一元多项式的输入,显示输出(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来(2)计算结 数据结构课程设计(C语言版) 一元稀疏多项式的运算问题描述:设用两个数组表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理.***注意使用数组,不是链表哦~~!***实现要求:⑴ 输 给定两个多项式,实现两个多项式相加算法.用c语言编程第一行输入包含两个整数m,n后续为m行和n行数据m,n分别代表两个多项式的项数后续每一行代表多项式的项,包含a,b两个数据,表示该项的系