用线性表表示多项式相加 C语言程序
时间: 2023-06-06 14:07:23 浏览: 103
用实现线性表和多项式相加功能.zip_多项式相加_线性表
好的,以下是用 C 语言表示多项式相加的程序:
```
#include <stdio.h>
struct term {
float coefficient;
int exponent;
};
typedef struct term Term;
#define MAX_TERMS 100
Term terms[MAX_TERMS];
int read_poly(Term *t) {
int n;
printf("Enter the number of terms in the polynomial: ");
scanf("%d", &n);
printf("Enter the coefficient and exponent for each term:\n");
for (int i = 0; i < n; ++i) {
printf("Term %d:\n", i+1);
scanf("%f%d", &t[i].coefficient, &t[i].exponent);
}
return n;
}
void add_poly(Term *a, int a_n, Term *b, int b_n, Term *c, int *c_n) {
int i = 0, j = 0, k = 0;
while (i < a_n && j < b_n) {
if (a[i].exponent > b[j].exponent) {
c[k].coefficient = a[i].coefficient;
c[k].exponent = a[i].exponent;
++i;
} else if (a[i].exponent < b[j].exponent) {
c[k].coefficient = b[j].coefficient;
c[k].exponent = b[j].exponent;
++j;
} else {
c[k].coefficient = a[i].coefficient + b[j].coefficient;
c[k].exponent = a[i].exponent;
++i; ++j;
}
++k;
}
for (; i < a_n; ++i, ++k) {
c[k].coefficient = a[i].coefficient;
c[k].exponent = a[i].exponent;
}
for (; j < b_n; ++j, ++k) {
c[k].coefficient = b[j].coefficient;
c[k].exponent = b[j].exponent;
}
*c_n = k;
}
void print_poly(Term *t, int n) {
printf("Polynomial: ");
for (int i = 0; i < n-1; ++i) printf("%.2fx^%d + ", t[i].coefficient, t[i].exponent);
printf("%.2fx^%d\n", t[n-1].coefficient, t[n-1].exponent);
}
int main() {
int a_n = read_poly(terms);
print_poly(terms, a_n);
int b_n = read_poly(terms+a_n);
print_poly(terms+a_n, b_n);
Term result[MAX_TERMS];
int result_n;
add_poly(terms, a_n, terms+a_n, b_n, result, &result_n);
print_poly(result, result_n);
return 0;
}
```
在程序中,我们定义了一个结构体 `Term`,用来表示多项式中的每一项。我们定义了一个数组 `terms`,用来存储多项式中的所有项。`MAX_TERMS` 宏定义了 `terms` 数组的最大长度。
`read_poly` 函数用来读取多项式。它首先读取多项式中项的数量 `n`,然后循环读取每一项的系数和指数。
`add_poly` 函数用来将两个多项式相加。它接收两个多项式 `a` 和 `b`,它们的长度分别为 `a_n` 和 `b_n`。它将结果存储在结果多项式 `c` 中,并将结果多项式的长度存储在 `c_n` 中。在函数中,我们定义了三个指针 `i`、`j` 和 `k`,它们分别表示指向多项式 `a`、`b` 和 `c` 的当前项。我们对 `a` 和 `b` 的项进行比较,并根据它们的指数大小决定将哪个项添加到结果多项式中。最后,我们将 `a` 和 `b` 剩余的项添加到结果多项式中。
`print_poly` 函数用来打印多项式。
在 `main` 函数中,我们首先读取第一个多项式,并打印它。然后,我们读取第二个多项式,并打印它。最后,我们将两个多项式相加,并打印结果。
阅读全文