编程实现一元多项式的加法运算。第一个一元多项式A;第二个多项式B。以(0,0作为输入结束)C语言
时间: 2023-05-15 15:06:32 浏览: 30
实现如下:
#include <stdio.h>
#define MAXN 1000
typedef struct {
int coef; // 系数
int exp; // 指数
} Polynomial;
Polynomial A[MAXN], B[MAXN], C[MAXN];
int main() {
int i = 0, j = 0, k = 0;
// 输入多项式A
while (1) {
scanf("%d %d", &A[i].coef, &A[i].exp);
if (A[i].coef == 0 && A[i].exp == 0) break;
i++;
}
// 输入多项式B
while (1) {
scanf("%d %d", &B[j].coef, &B[j].exp);
if (B[j].coef == 0 && B[j].exp == 0) break;
j++;
}
// 多项式相加
while (i >= 0 && j >= 0) {
if (A[i].exp > B[j].exp) {
C[k].coef = A[i].coef;
C[k].exp = A[i].exp;
i--;
k++;
} else if (A[i].exp < B[j].exp) {
C[k].coef = B[j].coef;
C[k].exp = B[j].exp;
j--;
k++;
} else {
C[k].coef = A[i].coef + B[j].coef;
C[k].exp = A[i].exp;
i--;
j--;
k++;
}
}
// 处理剩余项
while (i >= 0) {
C[k].coef = A[i].coef;
C[k].exp = A[i].exp;
i--;
k++;
}
while (j >= 0) {
C[k].coef = B[j].coef;
C[k].exp = B[j].exp;
j--;
k++;
}
// 输出结果
for (int l = k - 1; l >= 0; l--) {
printf("%d %d ", C[l].coef, C[l].exp);
}
printf("0 0\n"); // 输出结束标志
return 0;
}
相关推荐















