多项式类的c 实现
时间: 2024-09-28 08:04:50 浏览: 35
在C语言中,我们可以创建一个简单的多项式类来表示数学中的多项式,并提供加法、减法等基本运算。下面是一个基础的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义多项式的结构体
typedef struct {
int degree; // 次数
double coefficients[100]; // 存储系数,假设最多有99次幂
} Polynomial;
// 初始化多项式
Polynomial* create_polynomial(int degree) {
Polynomial* poly = malloc(sizeof(Polynomial));
poly->degree = degree;
for (int i = 0; i <= degree; i++) {
poly->coefficients[i] = 0.0;
}
return poly;
}
// 添加两个多项式
void add_poly(Polynomial* result, Polynomial* a, Polynomial* b) {
if (a->degree != b->degree) {
printf("Error: Polynomials must have the same degree to be added.\n");
return;
}
result->degree = a->degree;
for (int i = 0; i <= result->degree; i++) {
result->coefficients[i] = a->coefficients[i] + b->coefficients[i];
}
}
// 打印多项式
void print_polynomial(const Polynomial* poly) {
printf("Polynomial (%d terms): ", poly->degree);
for (int i = 0; i <= poly->degree; i++) {
printf("%.2lfx^%d + ", poly->coefficients[i], i);
}
printf("0\n");
}
int main() {
Polynomial* p1 = create_polynomial(3);
Polynomial* p2 = create_polynomial(3);
// 初始化多项式并设置系数
p1->coefficients[0] = 1.0;
p1->coefficients[1] = 2.0;
p1->coefficients[2] = 3.0;
p2->coefficients[0] = 4.0;
p2->coefficients[1] = -1.0;
p2->coefficients[2] = 5.0;
Polynomial* sum = create_polynomial(3); // 结果多项式
add_poly(sum, p1, p2);
print_polynomial(sum);
free(p1);
free(p2);
free(sum);
return 0;
}
```
这个例子中,我们定义了一个包含次数和系数的结构体`Polynomial`,然后实现了创建、添加和打印多项式的基本功能。请注意,这只是一个简化版的实现,实际应用中可能会需要考虑更复杂的功能,比如存储多项式的最高次数作为动态大小数组,以及处理用户输入的系数。
阅读全文