C語(yǔ)言怎么實(shí)現(xiàn)多項(xiàng)式加減

小億
133
2023-08-17 22:11:40

在C語(yǔ)言中,可以使用數(shù)組來(lái)表示多項(xiàng)式。數(shù)組的下標(biāo)表示多項(xiàng)式的指數(shù),數(shù)組的值表示多項(xiàng)式的系數(shù)。

以下是一個(gè)示例代碼,用于實(shí)現(xiàn)兩個(gè)多項(xiàng)式的加法和減法:

#include <stdio.h>
#define MAX_DEGREE 100
// 多項(xiàng)式結(jié)構(gòu)體
typedef struct {
int degree;  // 最高次數(shù)
int coeff[MAX_DEGREE + 1];  // 系數(shù)數(shù)組
} Polynomial;
// 初始化多項(xiàng)式
void initPolynomial(Polynomial *poly) {
poly->degree = 0;
for (int i = 0; i <= MAX_DEGREE; i++) {
poly->coeff[i] = 0;
}
}
// 輸入多項(xiàng)式
void inputPolynomial(Polynomial *poly) {
printf("Enter the degree of the polynomial: ");
scanf("%d", &(poly->degree));
printf("Enter the coefficients of the polynomial: ");
for (int i = 0; i <= poly->degree; i++) {
scanf("%d", &(poly->coeff[i]));
}
}
// 打印多項(xiàng)式
void printPolynomial(Polynomial *poly) {
for (int i = poly->degree; i >= 0; i--) {
printf("%dx^%d ", poly->coeff[i], i);
if (i > 0) {
printf("+ ");
}
}
printf("\n");
}
// 多項(xiàng)式加法
Polynomial addPolynomials(Polynomial *poly1, Polynomial *poly2) {
Polynomial sum;
initPolynomial(&sum);
sum.degree = (poly1->degree > poly2->degree) ? poly1->degree : poly2->degree;
for (int i = 0; i <= sum.degree; i++) {
sum.coeff[i] = poly1->coeff[i] + poly2->coeff[i];
}
return sum;
}
// 多項(xiàng)式減法
Polynomial subtractPolynomials(Polynomial *poly1, Polynomial *poly2) {
Polynomial diff;
initPolynomial(&diff);
diff.degree = (poly1->degree > poly2->degree) ? poly1->degree : poly2->degree;
for (int i = 0; i <= diff.degree; i++) {
diff.coeff[i] = poly1->coeff[i] - poly2->coeff[i];
}
return diff;
}
int main() {
Polynomial poly1, poly2, sum, diff;
// 輸入多項(xiàng)式1
printf("Enter the first polynomial:\n");
inputPolynomial(&poly1);
// 輸入多項(xiàng)式2
printf("Enter the second polynomial:\n");
inputPolynomial(&poly2);
// 計(jì)算多項(xiàng)式的和與差
sum = addPolynomials(&poly1, &poly2);
diff = subtractPolynomials(&poly1, &poly2);
// 打印多項(xiàng)式的和與差
printf("Sum: ");
printPolynomial(&sum);
printf("Difference: ");
printPolynomial(&diff);
return 0;
}

這段代碼首先定義了一個(gè)Polynomial結(jié)構(gòu)體來(lái)表示多項(xiàng)式,包括最高次數(shù)和系數(shù)數(shù)組。然后定義了一些函數(shù)來(lái)初始化多項(xiàng)式、輸入多項(xiàng)式、打印多項(xiàng)式、進(jìn)行多項(xiàng)式的加法和減法運(yùn)算。

main函數(shù)中,首先輸入了兩個(gè)多項(xiàng)式,然后調(diào)用addPolynomialssubtractPolynomials函數(shù)計(jì)算多項(xiàng)式的和與差,最后打印出結(jié)果。

0