7-2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和。
输入格式:
输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。
输入样例:
4 3 4 -5 2 6 1 -2 0
3 5 20 -7 4 3 1
输出样例:
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
分析:
1,用typedef存数,计算。加法时比较麻烦考验编程能力。
2,要合并多项式。
另:
我真的想好好吐槽下这道题,00不是约定得1吗,这里我想了好半天,没办法参考了别人的答案才知道这道题在计算0o时默认忽视它了,在完全没结果时只要输出0 0就好,我哭了。
忽视00直接使用数组计算会比较简单,多项式的系数是数组的序列数,数字的系数为那个数组系数下所存的值。
最后祝你一遍AC;
代码:
#include<stdio.h>
typedef struct {
int x;
int a;
} num;
void show(num c[],int t);//整理显示多项式
int main() {
num a[1001],b[1001],c[1001];
int n,m,t,aa,bb;
scanf("%d",&n);//输入数据
for(int i=0; i<n; i++) {
scanf("%d",&aa);
scanf("%d",&bb);
if(a!=0&&b!=0) {
a[i].a=aa;
a[i].x=bb;
}
}
scanf(