c语言两个一元多项式相乘编程
作者:野牛程序员:2023-07-27 07:25:24C语言阅读 2712
在C语言中,两个一元多项式的相乘可以通过创建一个结构体来表示多项式,然后编写相应的函数来实现相乘操作。以下是一个简单的C语言程序,用于实现两个一元多项式的相乘:
#include <stdio.h> #include <stdlib.h> // 结构体表示一元多项式的项 struct PolynomialTerm { int coefficient; int exponent; }; // 结构体表示一元多项式 struct Polynomial { int num_terms; struct PolynomialTerm *terms; }; // 函数用于输入多项式 void inputPolynomial(struct Polynomial *poly) { printf("输入多项式的项数:"); scanf("%d", &poly->num_terms); poly->terms = (struct PolynomialTerm*)malloc(poly->num_terms * sizeof(struct PolynomialTerm)); printf("依次输入多项式的系数和指数:\\n"); for (int i = 0; i < poly->num_terms; i++) { printf("系数 %d: ", i + 1); scanf("%d", &poly->terms[i].coefficient); printf("指数 %d: ", i + 1); scanf("%d", &poly->terms[i].exponent); } } // 函数用于输出多项式 void printPolynomial(struct Polynomial poly) { for (int i = 0; i < poly.num_terms; i++) { printf("%dx^%d ", poly.terms[i].coefficient, poly.terms[i].exponent); if (i < poly.num_terms - 1) { printf("+ "); } } printf("\\n"); } // 函数用于计算两个多项式的乘积 struct Polynomial multiplyPolynomials(struct Polynomial poly1, struct Polynomial poly2) { struct Polynomial result; result.num_terms = poly1.num_terms * poly2.num_terms; result.terms = (struct PolynomialTerm*)malloc(result.num_terms * sizeof(struct PolynomialTerm)); int idx = 0; for (int i = 0; i < poly1.num_terms; i++) { for (int j = 0; j < poly2.num_terms; j++) { result.terms[idx].coefficient = poly1.terms[i].coefficient * poly2.terms[j].coefficient; result.terms[idx].exponent = poly1.terms[i].exponent + poly2.terms[j].exponent; idx++; } } return result; } int main() { struct Polynomial poly1, poly2, product; printf("输入第一个多项式:\\n"); inputPolynomial(&poly1); printf("输入第二个多项式:\\n"); inputPolynomial(&poly2); printf("第一个多项式:"); printPolynomial(poly1); printf("第二个多项式:"); printPolynomial(poly2); product = multiplyPolynomials(poly1, poly2); printf("两个多项式的乘积:"); printPolynomial(product); // 释放内存 free(poly1.terms); free(poly2.terms); free(product.terms); return 0; }
在这个程序中,使用了结构体来表示多项式的项和整个多项式。函数inputPolynomial
用于输入多项式的项,printPolynomial
用于输出多项式,multiplyPolynomials
用于计算两个多项式的乘积。程序先输入两个多项式,然后计算它们的乘积并输出结果。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:少儿编程之c++输出两个数相乘
- 下一篇:c语言两个矩阵相加