一元多项式加减法运算c语言
时间: 2024-09-13 19:08:50 浏览: 52
在C语言中,处理一元多项式的加减法通常涉及到整数或浮点数数组,每个元素代表多项式的系数。以下是一个简单的示例,展示了如何对两个一元多项式进行加法操作:
```c
#include <stdio.h>
// 定义多项式结构体,包含系数数组和次数
typedef struct {
int degree; // 次数
double coefficients[100]; // 系数数组,假设最多有100项
} Polynomial;
// 添加一元多项式函数
Polynomial add_polynomials(Polynomial p1, Polynomial p2) {
Polynomial result;
result.degree = MAX(p1.degree, p2.degree); // 取较大次数
for (int i = 0; i <= result.degree; i++) {
if (i <= p1.degree && i <= p2.degree)
result.coefficients[i] = p1.coefficients[i] + p2.coefficients[i];
else if (i > p1.degree)
result.coefficients[i] = p2.coefficients[i];
else
result.coefficients[i] = p1.coefficients[i];
}
return result;
}
// 示例
int main() {
Polynomial p1 = {3, 2.5, 1.7}, p2 = {4, -1.8, 0.9};
Polynomial sum = add_polynomials(p1, p2);
printf("Sum of polynomials:\n");
for (int i = 0; i <= sum.degree; i++)
printf("%d * x^%d + ", (int)(sum.coefficients[i]), i);
printf("\n");
return 0;
}
```
对于减法,你可以创建一个辅助函数来计算差值,只需将正向相加的部分取反即可:
```c
double subtract(double a, double b) {
return a - b;
}
Polynomial subtract_polynomials(Polynomial p1, Polynomial p2) {
Polynomial difference = add_polynomials(p1, (-p2)); // 对第二个多项式取负
return difference;
}
// 更新主函数以包括减法
main() {
//...
Polynomial diff = subtract_polynomials(p1, p2);
//...
}
```
请注意,这个例子没有处理完全不同的多项式长度(例如,如果第一个多项式的次数小于第二个),在实际应用中,需要额外检查并适当地填充或截断结果。
阅读全文