程序编写题:随机输入两个一元多项式,实现两个多项式相加,输出相加后的一元多项式。要求用标准的C语言实现,提交可执行代码。
时间: 2024-09-27 18:15:22 浏览: 111
数据结构(C语言)用单链表存储一元多项式并实现两个多项式的相加运算.doc
5星 · 资源好评率100%
在C语言中,你可以使用结构体来表示一元多项式,并通过数组存储系数。首先,定义一个多项式的结构体,然后编写函数分别用于获取用户输入、计算多项式相加以及打印结果。以下是一个简单的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义多项式结构体
typedef struct {
int degree; // 次数
double coefficients[100]; // 可能会有多个系数,这里设定最多100项
} Polynomial;
// 功能:从用户处获取多项式系数并初始化结构体
void input_polynomial(Polynomial *poly) {
printf("请输入多项式的次数:");
scanf("%d", &poly->degree);
for (int i = 0; i <= poly->degree; i++) {
if (i == 0) {
printf("常数项:");
} else {
printf("x^%d 的系数:", i);
}
scanf("%lf", &poly->coefficients[i]);
}
}
// 功能:计算两个多项式的和
Polynomial add_polynomials(Polynomial poly1, Polynomial poly2) {
Polynomial result;
result.degree = poly1.degree > poly2.degree ? poly1.degree : poly2.degree;
for (int i = 0; i <= result.degree; i++) {
result.coefficients[i] = poly1.coefficients[i] + poly2.coefficients[i];
}
return result;
}
// 功能:打印多项式
void print_polynomial(const Polynomial poly) {
printf("相加后的多项式为:\n");
for (int i = 0; i <= poly.degree; i++) {
printf("x^%d: %lf\n", i, poly.coefficients[i]);
}
}
int main() {
Polynomial poly1, poly2;
input_polynomial(&poly1);
input_polynomial(&poly2);
Polynomial sum = add_polynomials(poly1, poly2);
print_polynomial(sum);
return 0;
}
```
在这个程序中,用户会依次输入两个多项式的系数,然后程序会计算它们的和并显示结果。注意,这个实现假设用户输入的是整数次幂,实际应用中可能需要添加错误检查。
阅读全文