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

本文档详细介绍了如何使用链式存储结构在C语言中实现一元多项式的相加,包括实验目的、环境配置、操作步骤和关键代码片段。通过实例演示了合并相同指数项并处理零和非零系数的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资源下载地址: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;

    // 输入多项式1
    printf("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

    // 输入多项式2
    printf("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); // 用缓存中的参数多项式链表p2

    printf("Input:\nP1 = ");
    print_polyn(p1); // 输出相加前的p1
    printf("P2 = ");
    print_polyn(p2); // 输出相加前的p2

    printf("Computing...\n");
    Polyn* psum = add_polyn(p1, p2); // 执行p1+p2

    printf("Output:\nP1 + P2 =\n");
    print_polyn(p1);// 输出相加后的p1,证明其未被破坏
    printf("+\n");
    print_polyn(p2);// 输出相加后的p2,证明其未被破坏
    printf("=\n");
    print_polyn(psum);// 输出多项式和psum

    deinit_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shejizuopin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值