用C语言实现一元多项式的相加采用数组的方法
时间: 2024-10-18 22:10:57 浏览: 52
在C语言中,我们可以使用数组来存储一元多项式系数及其对应的次数。为了实现两个一元多项式的相加,我们需要创建两个数组分别表示两个多项式,并遍历这两个数组,将对应项相加。下面是一个简单的示例:
```c
#include <stdio.h>
// 定义一元多项式结构体,包含数组和大小
typedef struct {
int coefficients[10]; // 可能的最大次数为9,因为最高次幂的指数是8
int degree; // 一元多项式的最高次数
} Polynomial;
// 添加两个一元多项式的函数
void addPolynomials(Polynomial *poly1, Polynomial *poly2) {
int i = min(poly1->degree, poly2->degree); // 取两个多项式的较小度数
Polynomial result = {0}; // 初始化结果多项式,系数数组全为0
result.degree = i;
for (i = 0; i <= result.degree; ++i) {
result.coefficients[i] = poly1->coefficients[i] + poly2->coefficients[i];
}
}
int main() {
Polynomial p1 = { {1, 2, 3}, 2 }; // 代表多项式 1x^2 + 2x + 3
Polynomial p2 = { {4, 5}, 1 }; // 代表多项式 4x + 5
// 相加
addPolynomials(&p1, &p2);
// 输出结果多项式
printf("Resulting polynomial is: ");
for (int i = 0; i <= p1.degree; ++i) {
if (p1.coefficients[i]) {
printf("%dx^%d + ", p1.coefficients[i], i);
} else {
break;
}
}
printf("0\n");
return 0;
}
```
在这个例子中,`addPolynomials`函数接收两个`Polynomial`类型的指针,通过循环逐项相加。注意,这里假设输入的多项式的最大次数不超过数组长度减一。
阅读全文