资源下载地址:https://download.csdn.net/download/sheziqiong/85996014
资源下载地址:https://download.csdn.net/download/sheziqiong/85996014

1.实验目的

  1. 了解链式存储结构的基本知识;
  2. 掌握算法思想和数据结构的描述;
  3. 结合一元多项式相加的运算规则。

2.实验环境

硬件:Intel Core™ i5-8300H CPU 2.30GHZ

软件:Windows10 家庭中文版 64位操作系统;Visual Studio 2019 集成开发环境

3.实验内容

​ 结合书上第41页的例子,采用链式存储结构,将两个线性链表表示的一元多项式相加,并输出。此一元多项式遵循多项式相加运算规则:对于两个一元多项式中存在指数相同的项时,其对应系数相加。合并后系数和为零时,删除“和多项式”中此项;合并后系数和不为零时,则构成“和多项式”中的一项。对于两个一元多项式中存在的指数不相同的项,则分别复抄到“和多项式”中去,原多项式保持不变。

4.实验程序

4.1 程序源代码

文件名:main.c

#include <stdio.h>
#include "polyn.h"/// 从stdin取得多项式的参数,格式:项数N 系数1 指数1 系数2 指数2 ...... 系数N 指数N
void get_polyn_parameters(unsigned* n, double coef[], int expn[]);/// 主函数
int main()
{// 缓存int expn[10] = { 0 };double coef[10] = { 0 };unsigned n;// 输入多项式1printf("Enter polynomial 1. Format: N coef1 expn1 coef2 expn2 ... coefN expnN\n");get_polyn_parameters(&n, coef, expn); // 从stdin取得参数,保存到缓存Polyn* p1 = init_polyn(n, coef, expn); // 用缓存中的参数创建多项式链表p1// 输入多项式2printf("Enter polynomial 2. Format: N coef1 expn1 coef2 expn2 ... coefN expnN\n");get_polyn_parameters(&n, coef, expn); // 从stdin取得参数,保存到缓存Polyn* p2 = init_polyn(n, coef, expn); // 用缓存中的参数多项式链表p2printf("Input:\nP1 = ");print_polyn(p1); // 输出相加前的p1printf("P2 = ");print_polyn(p2); // 输出相加前的p2printf("Computing...\n");Polyn* psum = add_polyn(p1, p2); // 执行p1+p2printf("Output:\nP1 + P2 =\n");print_polyn(p1);// 输出相加后的p1,证明其未被破坏printf("+\n");print_polyn(p2);// 输出相加后的p2,证明其未被破坏printf("=\n");print_polyn(psum);// 输出多项式和psumdeinit_polyn(p1); // 回收内存deinit_polyn(p2);deinit_polyn(psum);
}/// 从stdin取得多项式的参数,格式:项数N 系数1 指数1 系数2 指数2 ...... 系数N 指数N
void get_polyn_parameters(unsigned* n, double coef[], int expn[])
{scanf("%ud", n);*n = *n % 10;for (size_t i = 0; i < *n; i++) {scanf("%lf %d", coef + i, expn + i);}
}

5.程序运行结果截图

资源下载地址:https://download.csdn.net/download/sheziqiong/85996014
资源下载地址:https://download.csdn.net/download/sheziqiong/85996014

基于C++的一元多项式相加相关推荐

  1. c语言一元多项式相加

    用单链表实现一元多项式相加 #include<stdio.h> #include<stdlib.h> typedef struct Node{float coef;//系数 i ...

  2. c语言实现一元多项式的除法,课内资源 - 基于C++的一元多项式的计算

    1 问题描述 将多个多项式输入并存储在内存中,然后对多项式进行加.减运算并输出结果. 2 数据结构描述一元多项式的表示方式:如 f=6x^5-7x^4+3 表示为 f=6,5 -7,4 3,0 每个多 ...

  3. 数据结构——有序链表的合并,链表实现一元多项式相加

    1.有序链表的合并 void Connect(LinkList a, LinkList b, LinkList& c) {LNode* pa, * pb, * pc;//三个结点指针pa = ...

  4. C语言实现一元多项式相加

    C语言 链表实现一元多项式相加 这里的代码复制后,可以直接运行,按照规定的输入即可得出多项式的结果. 问题描述 设计一种单链表存储结构,每个节点成员有一个系数和一个指数,以及下一个节点的指针,数据类型 ...

  5. C语言一元多项式相加(链表)

    今天写一个关于一元多项式相加的程序,就当是在练习运用一下链表的知识.首先,我们先来分析一波,一元多项式相加,首先要用链表创建两个或多个多项式,每个节点里的数据有两个,系数和指数:其次,如果要实现乱幂输 ...

  6. 一元多项式c语言顺序存储,一元多项式相加程序(C语言)

    /* 2007-3-22 一元多项式的加法 */ # include # include # include typedef struct  PolyNode { int  coef; int  ex ...

  7. 编写一个程序实现两个一元多项式相加的运算。

    [问题描述]编写一个程序实现两个一元多项式相加的运算. [输入形式]从标准输入中读入四行数据, 其中第一行和第三行:各是是一个整数,表示第二行和第四行数据的个数: 第二行和第四行是若干个以空格分隔的整 ...

  8. 数据结构 - 一元多项式相加减(C语言)

    通常情况下,一元多项式可写成: an(x) = a1x^e1 + a2x^e2 + a3x^e3 + ... + amx^em (数字,m为下标),其中:pi是指数为ei的项的非零系数,0<= ...

  9. 严蔚敏数据结构:链表实现一元多项式相加

    一.基本概念 1.多项式pn(x)可表示成:  pn(x)=a0+a1x+a2x2+-+anxn. listP={(a0,e0),(a1,e1),(a2,e2),-,(an,en) }.在这种线性表描 ...

最新文章

  1. 震精~python运算符还能这么玩~到底这么做到的?神级程序员解密!
  2. Android.mk 文件语法详解
  3. 【网络通信与信息安全】之深入分析一个TCP连接可以发多少个HTTP请求相关问题
  4. c++ primer 5th 练习11.38自己编写答案(用无序容器重写单词计数程序)
  5. 低成本DIY视频预览遥控小车
  6. 广州Uber优步司机奖励政策(1月4日~1月10日)
  7. Queue —— JUC 的豪华队列组件
  8. 【Elasticsearch】 es ES节点memory lock重要性与实现方式
  9. JVM笔记——技术点汇总
  10. Java String、StringBuffer、StringBuilder区别
  11. 3大框架Struts、Hibernate、Spring简单了解
  12. 基于canvas的前端图片压缩
  13. matlab示例程序,Matlab100个实例程序.doc
  14. 人工智能和大数据案例课程
  15. unity4和unity5区别
  16. canva五角星空html,使用canvas绘制一个五角星
  17. 交房后,如何办理产权证、土地证?
  18. 计算机网课计划,计算机基础课程授课计划表.docx
  19. 比尔盖茨夫妇现身贫民窟
  20. 让职场人早下班的PDF转Word技巧,速戳!

热门文章

  1. Nomad 多job/group/task调度测试
  2. python基础总结:1.8、输入输出
  3. Maven安装教程讲解
  4. DNS知识及域名解析内容深入浅出超详细总结附DNS配置教程
  5. wifi无线认证,802.1x认证上网方式详解
  6. 基于SPI方式实现OLED屏显
  7. Linux下重要日志及查看方式
  8. 字节跳动最常问的前端面试题:Node.js 基础
  9. .NET Core Web API 发布IIS 报错 500.31
  10. 用户模块--------用户登录