189 8069 5689

C语言中如何实现多项式的相加-创新互联

这篇文章将为大家详细讲解有关C语言中如何实现多项式的相加,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联公司是一家集网站建设,南部企业网站建设,南部品牌网站建设,网站定制,南部网站建设报价,网络营销,网络优化,南部网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

具体内容如下

包含带头节点的链表的初始化,输出:

#define _CRT_SECURE_NO_WARNINGS#include #include typedef struct Pol{ int coe; // 系数  int index; // 指数  struct Pol *next;}Pol; int main(int argc, char *argv[]){ Pol *head1 = NULL; // 第一个多项式 Pol *head2 = NULL; // 第二个多项式 Pol *Initiate(Pol *head1); // 声明初始化函数 void Output(Pol *head);  // 声明输出函数 void PolAdd(Pol *head1, Pol *head2); // 声明相加函数 int coe, index;  char sign; Pol *p; int n = 0; // 初始化第一个多项式 head1 = Initiate(head1); p = head1; while (1) { scanf("%dx%d%c", &coe, &index, &sign); p->next = (Pol *)malloc(sizeof(Pol)); p = p->next; p->coe = coe; p->index = index; p->next = NULL; if(sign == '\n')  break; } printf("第一多项式输入完毕。\n"); // 初始化第二个多项式 head2 = Initiate(head2); p = head2; while (1) { scanf("%dx%d%c", &coe, &index, &sign); p->next = (Pol *)malloc(sizeof(Pol)); p = p->next; p->coe = coe; p->index = index; p->next = NULL; if (sign == '\n')  break; } printf("第二多项式输入完毕。\n"); // 调用相加函数和输出函数 PolAdd(head1, head2); Output(head1); system("PAUSE"); return 0;}// 初始化链表函数Pol *Initiate(Pol *head){ head = (Pol *)malloc(sizeof(Pol)); head->next = NULL; return head;}// 初始化相加函数void PolAdd(Pol *head1, Pol *head2){ Pol *p = head1->next; Pol *q = head2->next; Pol *pre = head1; Pol *temp = NULL; int sum; while ((p != NULL) && (q != NULL)) { if (p->index < q->index) {  pre->next = p;  pre = pre->next;  p = p->next; } else if(p->index == q->index) {  sum = p->coe + q->coe;  if (sum != 0)  {  p->coe = sum;  pre->next = p;  pre = pre->next;  p = p->next;  // 删除节点  temp = q;  q = q->next;  free(temp);  }  else  {  temp = p;  p = p->next;  free(temp);  temp = q;  q = q->next;  free(temp);  } } else {  pre->next = q;  pre = pre->next;  q = q->next; } } // 两串长度不相等时,把尾部一次加入 if (p != NULL) pre->next = p; else pre->next = q; }// 输出函数void Output(Pol *head){ Pol *p = head; p = p->next; int i = 0; while (p) { if (p->coe > 0 && i != 0) {  printf("+%dX^%d", p->coe, p->index);  p = p->next; } else {  printf("%dX^%d", p->coe, p->index);  p = p->next; } i++; }}

关于C语言中如何实现多项式的相加就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站栏目:C语言中如何实现多项式的相加-创新互联
网页地址:http://cdxtjz.cn/article/cegpcd.html

其他资讯