一元多项式的乘法与加法运算代码C语言
时间: 2023-06-09 18:07:21 浏览: 138
多项式的加法乘法源代码.docx
下面是一元多项式的乘法与加法运算的C语言代码:
一元多项式数据结构定义:
```
#define MAX_SIZE 1000
typedef struct {
float coef; // 系数
int expo; // 指数
} term;
typedef struct {
term t[MAX_SIZE];
int n; // 项数
} poly;
```
一元多项式加法函数:
```
poly poly_add(poly a, poly b) {
poly c;
int pa = 0, pb = 0, pc = 0;
while (pa < a.n && pb < b.n) {
if (a.t[pa].expo == b.t[pb].expo) {
float coef = a.t[pa].coef + b.t[pb].coef;
if (coef) {
c.t[pc].coef = coef;
c.t[pc++].expo = a.t[pa].expo;
}
pa++;
pb++;
} else if (a.t[pa].expo > b.t[pb].expo) {
c.t[pc].coef = a.t[pa].coef;
c.t[pc++].expo = a.t[pa++].expo;
} else {
c.t[pc].coef = b.t[pb].coef;
c.t[pc++].expo = b.t[pb++].expo;
}
}
for (; pa < a.n; pa++) {
c.t[pc].coef = a.t[pa].coef;
c.t[pc++].expo = a.t[pa].expo;
}
for (; pb < b.n; pb++) {
c.t[pc].coef = b.t[pb].coef;
c.t[pc++].expo = b.t[pb].expo;
}
c.n = pc;
return c;
}
```
一元多项式乘法函数:
```
poly poly_mul(poly a, poly b) {
poly c;
if (a.n == 0 || b.n == 0) {
c.n = 0;
return c;
}
if (a.n * b.n > MAX_SIZE) {
printf("Exceeding the maximum size of the polynomial!\n");
exit(1);
}
for (int i = 0; i < MAX_SIZE; i++) {
c.t[i].coef = 0;
c.t[i].expo = 0;
}
c.n = 0;
for (int i = 0; i < a.n; i++) {
for (int j = 0; j < b.n; j++) {
int k = a.t[i].expo + b.t[j].expo;
c.t[k].coef += a.t[i].coef * b.t[j].coef;
c.t[k].expo = k;
}
}
for (int i = 0; i < MAX_SIZE; i++) {
if (c.t[i].coef != 0) {
c.n++;
}
}
return c;
}
```
阅读全文