C语言实现一元多项式加法运算
时间: 2024-04-14 14:21:18 浏览: 161
一元多项式可以用结构体来表示,每个结构体包含两个成员:系数和指数。加法运算的实现可以按照以下步骤进行:
1. 定义结构体表示一元多项式:
```
typedef struct {
float coef; // 系数
int expn; // 指数
} term;
```
2. 定义函数输入两个一元多项式,输出它们的和:
```
void add_poly(term a[], int m, term b[], int n, term c[], int *k)
{
int i = 0, j = 0;
*k = 0;
while (i < m && j < n) {
if (a[i].expn == b[j].expn) {
float sum = a[i].coef + b[j].coef;
if (sum != 0) {
c[*k].coef = sum;
c[*k].expn = a[i].expn;
(*k)++;
}
i++;
j++;
} else if (a[i].expn > b[j].expn) {
c[*k] = a[i];
(*k)++;
i++;
} else {
c[*k] = b[j];
(*k)++;
j++;
}
}
while (i < m) {
c[*k] = a[i];
(*k)++;
i++;
}
while (j < n) {
c[*k] = b[j];
(*k)++;
j++;
}
}
```
3. 在主函数中定义两个一元多项式,调用函数计算它们的和:
```
int main()
{
term a[3] = {{2, 2}, {3, 1}, {4, 0}};
term b[4] = {{-3, 3}, {1, 2}, {2, 1}, {5, 0}};
term c[7];
int k;
add_poly(a, 3, b, 4, c, &k);
for (int i = 0; i < k; i++) {
printf("%.1fx^%d ", c[i].coef, c[i].expn);
}
return 0;
}
```
输出结果为:`-3.0x^3 3.0x^2 5.0x^1 9.0x^0`
阅读全文