多项式相加之C语言

#include<stdio.h>
#include<stdlib.h>
struct Node;
typedef struct Node *PNode;
struct Node{
   
	float coef;
	int exp;
	PNode next;
};
 
PNode createpoly()										
{
   
	PNode h = NULL, p = NULL, q;
	int a,b,e;
	float c;
	printf("请输入系数和指数(指数从大到小):\n");
	scanf("%f,%d",&c,&e);
	while (e != 0 || c != 0)
	{
   
		p = (PNode)malloc(sizeof(struct Node));
		p->coef = c;
		p->exp = e;
		p->next = NULL;
		if (h == NULL)
			h = p;
		else
			q->next = p;
		q = p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
多项式相加是指将两个或多个多项式相加得到一个新的多项式。在C语言中,我们可以使用结构体来表示多项式,然后定义函数来实现多项式的加法操作。 首先,我们可以使用结构体来表示多项式,结构体可以包含系数和指数两个字段,如下所示: ```c typedef struct Polynomial { int coef; int expon; struct Polynomial *next; } Polynomial; ``` 然后,我们可以定义一个函数来实现多项式相加的操作,可以按照以下步骤来进行: 1. 定义一个新的多项式用来保存相加的结果。 2. 遍历两个多项式,按照指数大小依次相加,并将结果存储到新的多项式中。 3. 如果某一个多项式提前遍历完了,那么将剩余部分直接加到结果多项式中。 函数的定义大致如下所示: ```c Polynomial *addPolynomial(Polynomial *p1, Polynomial *p2) { // 定义一个新的多项式用来保存相加的结果 Polynomial *result = (Polynomial *)malloc(sizeof(Polynomial)); Polynomial *temp = result; // 循环相加两个多项式 while (p1 != NULL && p2 != NULL) { if (p1->expon > p2->expon) { temp->coef = p1->coef; temp->expon = p1->expon; p1 = p1->next; } else if (p1->expon < p2->expon) { temp->coef = p2->coef; temp->expon = p2->expon; p2 = p2->next; } else { temp->coef= p1->coef + p2->coef; temp->expon= p1->expon; p1 = p1->next; p2 = p2->next; } temp->next = (Polynomial *)malloc(sizeof(Polynomial)); temp = temp->next; } // 将剩余部分直接加到结果多项式中 while (p1 != NULL) { temp->coef = p1->coef; temp->expon = p1->expon; p1 = p1->next; temp->next = (Polynomial *)malloc(sizeof(Polynomial)); temp = temp->next; } while (p2 != NULL) { temp->coef = p2->coef; temp->expon = p2->expon; p2 = p2->next; temp->next = (Polynomial *)malloc(sizeof(Polynomial)); temp = temp->next; } temp->next = NULL; return result; } ``` 以上就是一个简单的用C语言实现多项式相加的方法。当然,还有其他方法可以实现,但是这个例子可以给我们一个基本的思路。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yet again

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

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

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

打赏作者

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

抵扣说明:

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

余额充值