用c语言描述一元多项式的加法
时间: 2024-09-19 09:09:09 浏览: 56
在C语言中,我们可以创建一个结构体来表示一元多项式,包含系数数组和最高次数的信息。对于一元多项式的加法,我们首先检查两个多项式的最高次数,然后对应位置的系数相加,如果某个项在其中一个多项式中不存在,则认为其系数为0。以下是一个简单的示例:
```c
#include <stdio.h>
#define MAX_COEFFICIENTS 10
typedef struct {
int degree;
double coefficients[MAX_COEFFICIENTS];
} Polynomial;
void add_polynomials(Polynomial *poly1, Polynomial *poly2, Polynomial *result) {
int i;
if (poly1->degree > poly2->degree) {
result->degree = poly1->degree;
} else {
result->degree = poly2->degree;
}
for (i = 0; i <= result->degree; i++) {
result->coefficients[i] = poly1->coefficients[i] + poly2->coefficients[i];
}
}
int main() {
Polynomial p1 = {3, {2.0, 1.5, 0.0}}; // 2x^2 + 1.5x + 0
Polynomial p2 = {2, {4.0, -0.5, 3.0}}; // 4x^2 - 0.5x + 3
Polynomial sum;
add_polynomials(&p1, &p2, &sum);
printf("Sum of the polynomials is: ");
for (int i = 0; i <= sum.degree; i++) {
if (sum.coefficients[i] != 0) {
printf("%.1f", sum.coefficients[i]) << "x^" << i;
if (i < sum.degree) printf(" + ");
}
}
return 0;
}
```
在这个例子中,`add_polynomials`函数接受两个多项式和结果存储器,计算并合并它们的系数。在主函数中,我们创建了两个一元多项式,并打印出它们的和。
阅读全文