
C语言多项式加法运算(单链表)
#include #include #include <数学. h> typedef struct PNode {float coef; //系数int expn; //指数结构PNode * next; //指向下一项的指针} PNode; //一元多项式中的项struct PNode * creatPoly(PNode * head,int n)//创建单变量多项式(int i = 1; struct PNode * s,* pre; head =(struct PNode *)malloc(sizeof( struct PNode)); head-> next = NULL; pre = head; printf(“请输入项的系数和索引”); for(i = 1; i <= n; i ++){scanf(“ %d%d“,&pre-> coef,&pre-> expn); s =(结构PNode *)malloc(sizeof(结构PNode)); pre-> next = s; pre = s;)pre-> next = NULL; return 0;)struct PNode * addPoly(PNode * L1,PNode * L2)//实现多项式加法(int sum; struct PNode * p1,* p2,* p3,* r; p3 = p1; p1 = p1-> next ; p2 = p2-> next; while(p1 && p2){if(p1-> expn == p2-> expn){sum = p1-> coef + p2-> coef; if(sum!= 0)(p1 -> coef = sum; p3-> next = p1; p3 = p1; p1 = p1-> next;} else //(p3!= NULL){r = p1; p1 = p1-> next; free(r) ;)r = p2; p2 = p2-> next;释放(r);}否则,如果(p1-> expn expn && p3!= NULL){p3-> next = p1; p3 = p1; p1 = p1-> next;)else //(p1-> expn> p2-> expn && p3!= NULL){p3-> next = p2; p3 = p2; p2 = p2->接下来;})p3-> next = p1? p1: p2;免费(p2); return p1;} struct PNode * output(PNode * p)//打印链接列表的结果{while(p-> next!= NULL){printf(“%d%2d”,p-> coef,p- > expn); p = p-> next;} printf(“,”);返回0;} int main(){int n,m; struct PNode * headA,* headB; printf(“请输入多项式A的项数: ”); scanf(“%d”,&n); creatPoly(headA,n); printf(“输出多项式A: ”);输出(headA); printf(“请输入多项式B的项数: ”); Scanf(“%d”c 链表实现,&m); creatPoly(headB,m); printf(“输出多项式B: ”);输出(headB); addPoly(headA,headB); printf(“输出两个多项式加法后的结果多项式A: ”);返回0;}! [图片描述]()哪位大神可以帮助您查看代码有什么问题?运行结果不正确,多项式结果无法输出!谢谢
C ++一元多项式求和问题

#include 使用名称空间std; typedef int数据类型; //节点数据类型,假设inttypedef struct node *指针; //节点指针类型struct node {// Node structure int coef; //系数int exp; //下一个索引指针;}; typedef指针lklist; //单一链表类型,即lklist指针的类型指针initlist(){//创建一个空表的指针头;头=新节点; head-> next = NULL; return head;} lklist creat(){//尾部插值创建一个表,头节点的指针为head,tail,s; int c,e,n = 0;头=新节点; //生成头节点后=头; //尾部指针cout的初始值<<“多项式的元素数为: ”; cin >> n; for(int i = 0; i > c; cout <<“输入索引exp: ”; cin >> e; cout << endl;} while(c!= 0)/ *当输入系数为0时,表示多项式输入结束* /(s =新节点; s-> coef = c; / *申请new后赋值node * / s-> exp = e; / *申请新节点后的赋值* / s-> next = NULL; Rear-> next = s; //尾部插值tail = s; //插入表末,更改尾指针cout <<“ Coef: ” << c; cout <<“ Exponent exp: ” << e;)// Rear-> next = NULL; //尾节点之后为Empty return head;} / * int n = 0; cout <<“输入初始节点号: ”; cin >> n; cout <<“输入节点值: ” << endl;对于(int i = 0; i > ch; s =新节点; s-> data = ch; //生成新节点,后方-> next = s;后= s; //插入表格的末尾并更改尾指针} Rear-> next = NULL; //尾节点的后继者为空返回头; * /无效显示(lklist头){指针p; p =头->下一步; while(p!= head){// OKcout <<“为什么不出来?”; cout << p-> coef <<“ * x”; cout <<“ ^ +” << p-> exp; p = p-> next;} cout << endl;} lklist add(lklist A,lklist B){//一元多项式加法函数,用于将两个多项式指针C,p,q的后面相加;整数和p = A->接下来; q = B->接下来; C->下一步= NULL; C = A;后= C; //将A头节点作为C头节点//循环条件p! =头,即p! =一段时间(p!= A && q!= B){if(p-> exp == q-> exp)//如果指数相等(sum = p-> coef + q-> coef; //加相应的系数if(sum!= 0)//如果相加在系数不为零之后,将生成一个新节点;将尾部插入到新的链表中;该新节点由x分配; A的当前节点\ B都是高级{p-> coef = sum; C-> next = p; C = C-> next; p = p-> next; Rear = q; q = q-> next;删除后方;)) else if(p-> exp exp)//如果p指向的多项式索引小于q指向指数{C-> next = p; //添加p节点以求和多项式C = C-> next; p = p-> next;)else //如果由p指数化的多项式大于指数{C-> next = q; C = C->接下来; q = q-> next;}),而(p!= A){C = p-> next;后= p; p = p-> next;} while(q!= B){C = p-> next;后= p; p = p-> next;)C = C-> next; return C;} int main(){lklist A,B; A =初始化列表(); B =初始化列表(); cout <<“请按以下顺序输入第一个多项式的系数和指数: \ n”; A = creat(); cout <<“ \ n”; cout <<“请按以下顺序输入第二个多项式的系数和指数: \ n”; B = creat(); cout <<“第一个多项式输入是: \ n”;显示(A); cout <<“第二个多项式输入是: \ n”;显示(B);加(A,B); cout <<“合并链表C: \ n”;显示(A);返回0;}``````[图片说明]()我能做什么?我为什么不能下车?结果. 请指出出什么问题了. 我觉得很合理
谁能告诉我这段代码中的错误是什么?
标题是这样的: 应用单个链表实现单变量多项式及其加法. 例如,一元多项式1: x2 + 5x + 3;一元多项式2: 2x2 + 5;和加法运算的结果: 3x2 + 5x +8. 代码: 使用名称空间std #include ;结构节点{int xishu; //系数int zhishu; //索引节点* next;}; void creatnode(node * phead)//创建链表{cout <<“该数字表示系数,后一个数字表示指数. 输入两个0以结束输入. ” << endl;节点* p = phead; int x = 1,y = 1; while(x!= 0){node * pnode =新节点; cin >> x; cin >> y; pnode-> xishu = x; pnode-> zhishu = y; pnode-> next = nullptr; p-> next = pnode; p = pnode;} if(x == 0){cout <<“输入完成!” << endl; cout << endl;}} void lsort(node * phead)//根据指数大小对两个多项式进行排序{node * p = phead-> next;节点* q = p;布尔标志标志= true; while(flag)//冒泡排序(flag = false; p = phead-> next; while((p-> next)!= nullptr){if(((p-> zhishu)<(p-> next-> zhishu )){int temp,temp2; temp = p-> xishu; temp2 = p-> zhishu; p-> xishu = p-> next-> xishu; p-> zhishu = p-> next-> zhishu; p- > next-> xishu = temp; p-> next-> zhishu = temp2; p = p-> next; flag = true;} p = p-> next;}})void print(node * phead1,node * phead2c 链表实现,node * phead3)//多项式相加后的多项式{node * p = phead1; p = phead1->接下来;节点* q = phead2; q = phead2->接下来;节点* store = phead3; while((p-> next!= nullptr)&&(q-> next!= nullptr))//不考虑链表中的最后一个0,因此不考虑最后一个节点{node * temp = new node; if(p-> zhishu == q-> zhishu){temp-> xishu = p-> xishu + q-> xishu; temp-> zhishu = p-> zhishu; temp-> next = nullptr; store-> next = temp;存储=温度; p = p->接下来; q = q-> next;} if((p-> zhishu)>(q-> zhishu)){temp-> xishu = p-> xishu; temp-> zhishu = p-> zhishu; temp-> next = nullptr; store-> next = temp;存储=温度; p = p-> next;)if((p-> zhishu)<(q-> zhishu)){temp-> xishu = q-> xishu; temp-> zhishu = q-> zhishu; temp-> next = nullptr; store-> next = temp;存储=温度; q = q->接下来; p = p;}} //两个链接列表时的下一个过程在遍历某个链接列表后,链接列表中的值将分配给目标链接列表,而(p-> next!= Nullptr && q-> next = = nullptr){node * temp =新节点; temp-> xishu = p-> xishu; temp-> zhishu = p-> zhishu; temp-> next = nullptr; store-> next = temp;存储=温度; p = p->接下来; q = q;} while(q-> next!= nullptr && p-> next == nullptr)(节点* temp =新节点; temp-> xishu = q-> xishu; temp-> zhishu = q- > zhishu; temp-> next = nullptr; store-> next = temp; store = temp; q = q-> next;} //输出最终结果cout <<“输出之前的遍历: ”; travel(phead3) ; node * r = phead3; r = phead3-> next; while(r-> next!= nullptr){if(r-> zhishu!= 0){cout << r-> xishu <<“ x ^” < zhishu <<“ +”;} if(r-> zhishu == 0){cout << r-> xishu <<“ +”;} r = r-> next;}如果(r-> zhishu!= 0){cout << r-> xishu <<“ x ^” << r-> zhishu <<“. ”;} if(r-> zhishu == 0){cout << r-> xishu <<“. ”;}} int main(){节点* head1 =新节点; head1-> next = nullptr; cout <<“请输入第一个一元多项式,”; creatnode(head1);节点* head2 = new节点; head2-> next = nullptr; cout <<“请输入第二个单变量多项式,”; creatnode(head2); node * head3 =新节点; //创建前哨节点head3-> next = nullptr; lsort(head1 ); lsort(head2);打印(head1,head2,head3); return 0;}输入标题中的样本时,输出仅为5 x ^ 1 +8. 缺少3x ^ 2.

我已经上学四年了,我已经贡献了这些私人有用的工具/学习网站.
四年制大学不可能一直读课本. 仍然有必要学习,尤其是自学,并善于搜索一些资源以提供帮助. 我将把这些保留多年,各种资源和网站都会为您做出贡献. 主要有: 电子书搜索,实用工具,视频学习网站,非视频学习网站,软件下载,面试/求职必备网站. 注意: 我已经整理了文章结尾处提到的所有资源. 你可以接受它. 如果您感觉良好,则转发和共享是最大的支持. 首先,针对大多数程序员的电子书搜索...
程序员在中国还很年轻吗?

今年,我也32岁. 为了不误导大家,我咨询了猎头公司,圈子中的朋友以及35岁以上的几位老程序员……我放弃了老面孔露出人们的伤疤...希望能给您帮助,记得喜欢我. 目录: 您认为的生活一次又一次地伤害了猎头者如何应对互联网行业中的“中年危机” I.当您第一次想到生活时,您就以自豪的薪水考虑了好吧,生活是这样的: 一天到来时,您会发现自己的生活可能是这样的: ...
了解MySQL性能优化MySQL体系结构
本文介绍了MySQL的体系结构,包括物理结构,逻辑结构和插件存储引擎.

python自动下载图像
过去几天没有任何反应. 始终有无形的力量在您周围徘徊,让您入睡和昏昏欲睡. 但是,a这样的动物又该如何睡觉呢?我忍不住想. . . . 突然间,一位IOS同事问道: ‘嘿,兄弟,我发现网站的图片非常有趣. 您可以保存它并改善我的发展灵感吗? ‘作为强壮的社交动物,您怎么能说自己做不到,然后我毫不犹豫地答应了: ‘哦,很简单. 等我...
针对大学生的四个问题
[序言]我收到了一封信,并忙了好几天的时间. 我利用今天的工作辞职作答. 2020年到来时,将此字母用作年初的标志. [文字]您好,我是一个大二学生,现在有很多困惑. 我有几个问题要问你. 首先让我说说我的基本情况. 我在高考中不及格,不想重复. 我来到广州的一所大学学习计算机应用技术. 学校是面向艺术的,没有计算机科学实验室,更不用说工作室了. 而且学校的学风不好. 但是我很想带领计算机...
审查一周,京东+百度意外接受了报价
京东和百度都问面试官在做什么,但我是全体会议.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-159193-1.html
勾践