C语言按照指数降序排列建立并输出多项式:能够完成两个多项式的输出,相加,相减项,编写一段完整的代码
时间: 2024-09-23 18:03:05 浏览: 107
在C语言中,你可以使用数组结构来表示多项式,并通过动态内存分配和指针操作来实现按指数降序排列和基本的四则运算。这里是一个简单的示例,展示了如何创建两个多项式、相加和输出它们:
```c
#include <stdio.h>
#include <stdlib.h>
// 结构体表示多项式的项
typedef struct {
int coefficient; // 系数
int exponent; // 指数
} Term;
// 比较函数用于排序
int compare(const void *a, const void *b) {
return ((Term *)b)->exponent - ((Term *)a)->exponent;
}
// 创建多项式
Term* create_polynomial(int degree) {
Term *poly = (Term*)malloc(degree * sizeof(Term));
for (int i = 0; i < degree; ++i) {
poly[i].coefficient = 0;
poly[i].exponent = i;
}
qsort(poly, degree, sizeof(Term), compare);
return poly;
}
// 输出多项式
void print_polynomial(Term *poly, int degree) {
printf("Polynomial: ");
for (int i = 0; i <= degree; ++i) {
if (poly[i].coefficient != 0)
printf("%d * x^%d + ", poly[i].coefficient, poly[i].exponent);
}
printf("\n");
}
// 添加两个多项式
Term* add_polynomials(Term *poly1, Term *poly2, int degree) {
Term *sum_poly = create_polynomial(degree + 1);
for (int i = 0; i <= degree; ++i) {
sum_poly[i].coefficient = poly1[i].coefficient + poly2[i].coefficient;
}
return sum_poly;
}
// 主函数演示
int main() {
int degree1 = 3;
int degree2 = 2;
Term *poly1 = create_polynomial(degree1);
Term *poly2 = create_polynomial(degree2);
// 填充示例多项式
poly1[0].coefficient = 5;
poly1[1].coefficient = 2;
poly1[2].coefficient = 3;
poly2[0].coefficient = -1;
poly2[1].coefficient = 4;
Term *result = add_polynomials(poly1, poly2, degree1 > degree2 ? degree1 : degree2);
print_polynomial(result, degree1 > degree2 ? degree1 : degree2);
free(result); // 释放内存
return 0;
}
```
这个程序首先定义了多项式的表示方式,然后实现了创建、排序、添加以及输出多项式的功能。注意,这只是一个基础示例,实际应用中可能会需要处理更多边界情况和错误处理。
阅读全文