一元多项式加法乘法运算c

这篇博客介绍了如何使用C语言和链表数据结构来实现一元多项式的加法和乘法运算。作业设计考虑了动态添加项、自动排序及同类项合并等功能,适用于VS环境,但在其他编程软件中可能需要调整头文件和main函数中的暂停语句。
摘要由CSDN通过智能技术生成

完美的数据结构大作业之选。

C语言+链表 实现。

不用提前知道多项式项数,可以自动排序,可以合并同类项,可以进行加法、乘法运算。

//#include<stdio.h>
//#include<stdlib.h>
#include"stdafx.h"
#include<malloc.h>
#include<Windows.h>

//#define ERROR 0;
//#define OVERFLOW 0;

typedef struct Polyn {
	int expn, coef;
	Polyn* next;
}*P;

P CreatePolyn(Polyn *P);               // 创建节点
Polyn* SelectSort(Polyn *Pa);          // 选择排序
Polyn* MergePolyn(Polyn *Pa);             //合并同类项
void PrintPolyn(Polyn *P);             // 打印多项式

int cmp(int a, int b);                 // 比较函数

P AddPolyn(P Pa, P Pb);                // 多项式相加
P MultiPolyn(P Pa, P Pb);              // 多项式相乘

/*------------------------Dome---------------------------------*/
int main()
{
	P Pa, Pb, Pc, Pd;
	Pa = (Polyn *)malloc(sizeof(Polyn));
	Pb = (Polyn *)malloc(sizeof(Polyn));
	Pa = CreatePolyn(Pa);
	Pb = CreatePolyn(Pb);


	Pd = MultiPolyn(Pa, Pb);
	Pc = AddPolyn(Pa, Pb);

	system("pause");
	return 0;
}
/*-----------------------打印多项式------------------------------*/
void PrintPolyn(Polyn* P)
{
	Polyn* q = P->next;
	//若多项式为空   
	printf("\n");
	while (q->next != NULL)
	{
		if (q->coef>0) printf("%d*x^%d+", q->coef, q->expn);
		else if (q->coef < 0) {
			printf("(%d)*x^%d+", q->coef, q->expn);
		}
		else  print
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值