当前位置:首页C语言 > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击