c语言输出多项式乘积
时间: 2023-07-02 08:10:22 浏览: 94
以下是一个简单的 C 代码示例,可以计算两个多项式的乘积并输出结果:
```c
#include <stdio.h>
#define MAX_TERMS 100
typedef struct {
float coef; // 系数
int exp; // 指数
} Term;
void read_poly(Term poly[]);
void print_poly(Term poly[]);
void mult_poly(Term poly1[], Term poly2[], Term result[]);
int main() {
Term poly1[MAX_TERMS], poly2[MAX_TERMS], result[MAX_TERMS];
int i;
printf("Enter the first polynomial:\n");
read_poly(poly1);
printf("\nEnter the second polynomial:\n");
read_poly(poly2);
mult_poly(poly1, poly2, result);
printf("\nThe product is:\n");
print_poly(result);
return 0;
}
// 读取多项式
void read_poly(Term poly[]) {
int n, i;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Enter the coefficients and exponents:\n");
for (i = 0; i < n; i++) {
scanf("%f %d", &poly[i].coef, &poly[i].exp);
}
}
// 打印多项式
void print_poly(Term poly[]) {
int i;
for (i = 0; poly[i].coef != 0.0 && i < MAX_TERMS; i++) {
if (i > 0) {
printf(" + ");
}
printf("%.1fx^%d", poly[i].coef, poly[i].exp);
}
printf("\n");
}
// 计算多项式乘积
void mult_poly(Term poly1[], Term poly2[], Term result[]) {
int i, j, k = 0;
for (i = 0; poly1[i].coef != 0.0 && i < MAX_TERMS; i++) {
for (j = 0; poly2[j].coef != 0.0 && j < MAX_TERMS; j++) {
result[k].coef = poly1[i].coef * poly2[j].coef;
result[k].exp = poly1[i].exp + poly2[j].exp;
k++;
}
}
// 合并同类项
for (i = 0; i < k; i++) {
for (j = i + 1; j < k; j++) {
if (result[i].exp == result[j].exp) {
result[i].coef += result[j].coef;
result[j].coef = 0.0;
}
}
}
}
```
需要注意的是,这个代码示例中的多项式都是以指数递减的顺序排列的。如果你需要处理指数递增的多项式,可以在读取和输出多项式的时候稍微修改一下代码。
阅读全文