编写一个程序实现两个一元多项式相加的运算用C语言
时间: 2023-05-30 15:04:03 浏览: 289
#include <stdio.h>
struct Poly {
int coef; // 系数
int exp; // 指数
};
int main() {
struct Poly poly1[100], poly2[100], res[100]; // 定义三个多项式
int n1, n2, i, j, k;
printf("请输入第一个多项式的项数:");
scanf("%d", &n1);
printf("请输入第一个多项式的系数和指数:\n");
for (i = 0; i < n1; i++) {
scanf("%d%d", &poly1[i].coef, &poly1[i].exp);
}
printf("请输入第二个多项式的项数:");
scanf("%d", &n2);
printf("请输入第二个多项式的系数和指数:\n");
for (i = 0; i < n2; i++) {
scanf("%d%d", &poly2[i].coef, &poly2[i].exp);
}
i = 0, j = 0, k = 0;
while (i < n1 && j < n2) { // 合并两个多项式
if (poly1[i].exp > poly2[j].exp) {
res[k].coef = poly1[i].coef;
res[k].exp = poly1[i].exp;
i++;
} else if (poly1[i].exp < poly2[j].exp) {
res[k].coef = poly2[j].coef;
res[k].exp = poly2[j].exp;
j++;
} else {
res[k].coef = poly1[i].coef + poly2[j].coef;
res[k].exp = poly1[i].exp;
i++, j++;
}
k++;
}
while (i < n1) { // 处理多项式1多余的项
res[k].coef = poly1[i].coef;
res[k].exp = poly1[i].exp;
i++, k++;
}
while (j < n2) { // 处理多项式2多余的项
res[k].coef = poly2[j].coef;
res[k].exp = poly2[j].exp;
j++, k++;
}
printf("相加后的多项式为:\n");
for (i = 0; i < k; i++) {
printf("%dX^%d", res[i].coef, res[i].exp);
if (i != k - 1) {
printf(" + ");
}
}
return 0;
}
阅读全文