69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#define MAX_TERMS 100 //多项是 相加的代码,,,,
typedef struct{
float coef;
int expon;
}ploy;
void pprint(ploy p[]);
void padd(ploy a[],ploy b[],ploy c[]);
int main(void){
ploy pa[MAX_TERMS],pb[MAX_TERMS],pc[MAX_TERMS];
pa[0].coef = 2;
pa[1].coef = 1;
pa[2].coef = 0; //end of
pa[0].expon = 1000;
pa[1].expon = 1;
pb[0].coef = 1;
pb[1].coef = 10;
pb[2].coef = 3;
pb[3].coef = 1;
pb[4].coef = 0; // end of
pb[0].expon = 4;
pb[1].expon = 3;
pb[2].expon = 2;
pb[3].expon = 0;
pprint(pa);
pprint(pb);
padd(pa,pb,pc);
pprint(pc);
return 0;
}
void pprint(ploy p[]){
int i;
for(i = 0;p[i].coef > 0;i++){
if(p[i].expon == 0)
printf("%0.0f+",p[i].coef);
else
printf("%0.0fx^%d+",p[i].coef,p[i].expon);
}
printf("\b\n");
}
void padd(poly a[],poly b[],poly c[])
{
int ia,ib,ic;
ia = ib =ic =0;
while(a[ia].coef > 0 || b[ib].coef > 0){
if(a[ia].expon < b[ib].expon){
c[ic].coef = b[ib].coef;
c[ic].expon = b[ib].expon;
ib++;
ic++;
}else if(a[ia].expon == b[ib].expon){
c[ic].coef = a[ia].coef + b[ib].coef;
c[ic].expon = a[ia].expon;
ia++;
ib++;
ic++;
}else{
c[ic].coef = a[ia].coef;
c[ic].expon = a[ia].expon;
a[ia]++;
c[ic]++;
}
}
c[ic].coef = 0; //end of ploynimial
}