题目如下:
完成任意二个多项式的相加。
比如:A:3*X*X*X+5*X*X+5
B:7*X*X*X*X+8*X*X*X+12
结果是:7*X*X*X*X+11*X*X*X+5*X*X+17
望大师们帮我解决一下。。。。。。小妹在此感激不进
没用指针和链表做了个,数组的 #include <stdio.h>
int main() { int i,he[2],a[21]={0},b[21]={0}; scanf("%d",&he[0]); for( i=0 ; i<=he[0] ; i++ ) scanf("%d",&a[i]); scanf("%d",&he[1]); for( i=0 ; i<=he[1] ; i++ ) scanf("%d",&b[i]); if(he[0]<he[1]) he[0]=he[1]; for( i=0 ; i<=he[0] ; i++ ) a[i]=a[i]+b[i]; for( i=he[0] ; i>=0 ; i-- ) { if(a[i]==0) continue; printf("%d%s+",a[i],"*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X"+(20-i)*2); } printf("\b \n"); return 0; }
程序操作: 假设maximum为20项 输入关键信息,如多项式的最高次数和各项系数(由低到高) 例: a: 5*X*X*X+6*X*X+7*X+4 b: 3*X*X+4*X 求a+b
输入: 3 4 7 6 5 2 0 4 3 输出: 5*X*X*X+9*X*X+11*X+4
#include <stdio.h>
void sym(char c[],int i) { int j; for( j=0 ; j<i ; j++) printf("%c%c",c[0],c[1]); }
int main() { int i,he[2],a[21]={0},b[21]={0}; char c[2]="*X"; scanf("%d",&he[0]); for( i=0 ; i<=he[0] ; i++ ) scanf("%d",&a[i]); scanf("%d",&he[1]); for( i=0 ; i<=he[1] ; i++ ) scanf("%d",&b[i]); if(he[0]<he[1]) he[0]=he[1]; for( i=0 ; i<=he[0] ; i++ ) a[i]=a[i]+b[i]; for( i=he[0] ; i>=0 ; i-- ) { if(a[i]==0) continue; printf("%d",a[i]); sym(c,i); printf("+"); } printf("\b \n"); return 0; }