多项式相加的c语言实现
时间: 2023-12-14 15:01:12 浏览: 80
多项式相加是指将两个或多个多项式相加得到一个新的多项式。在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语言实现多项式相加的方法。当然,还有其他方法可以实现,但是这个例子可以给我们一个基本的思路。