一元多项式相加运算C语言代码
时间: 2024-09-15 15:01:27 浏览: 56
在C语言中,你可以编写一个函数来进行一元多项式的加法,这个函数通常会接受两个结构体(例如`Polynomial`),其中包含多项式的系数和次数信息。下面是一个简单的例子:
```c
#include <stdio.h>
// 定义多项式结构体
typedef struct {
int coefficient; // 系数
int degree; // 次数
} Term;
// 结构体数组表示多项式
typedef struct {
int count;
Term terms[];
} Polynomial;
// 助记符函数用于创建多项式的零实例
Polynomial zero_poly(int n) {
Polynomial poly = {n, {0}};
return poly;
}
// 添加两个多项式
Polynomial add_polynomials(Polynomial poly1, Polynomial poly2) {
Polynomial result = zero_poly(poly1.count + poly2.count);
for (int i = 0; i < poly1.count; i++) {
result.terms[i].coefficient += poly1.terms[i].coefficient;
}
for (int i = 0, j = poly1.count; i < poly2.count; i++, j++) {
result.terms[j].coefficient += poly2.terms[i].coefficient;
}
// 对齐结果多项式的最高次项
while (result.terms[result.count - 1].degree == 0) {
result.count--;
}
return result;
}
// 打印多项式
void print_polynomial(Polynomial poly) {
printf("Poly: [");
for (int i = 0; i < poly.count; i++) {
if (i > 0) {
printf(", ");
}
printf("%d * x^%d", poly.terms[i].coefficient, poly.terms[i].degree);
}
printf("]\n");
}
int main() {
Polynomial p1 = {3, {5, 2}}, p2 = {2, {4, 1}};
Polynomial sum = add_polynomials(p1, p2);
printf("p1: %d * x^2 + %d * x\n", p1.terms[0].coefficient, p1.terms[1].coefficient);
printf("p2: %d * x^1 + %d * x^0\n", p2.terms[0].coefficient, p2.terms[1].coefficient);
printf("Sum: %s\n", print_polynomial(sum).terms); // 输出合并后的多项式
return 0;
}
```
在这个示例中,我们首先定义了一个多项式的结构体和相关的辅助函数。然后,在`add_polynomials`函数中实现了两个多项式的加法。注意,这个代码假设输入的多项式已经按照非降序排列。
阅读全文