解题代码
#include<stdio.h>
struct _poly_ {
int coef;
int expon;
} poly1[1001];
int main(){
int sumpoly[1001]={0},multpoly[2001]={0},coef2,expon2,num1,num2,i,j,flag=1;
scanf("%d",&num1);
for(i=0;i<num1;i++){
scanf("%d %d",&poly1[i].coef,&poly1[i].expon);
sumpoly[poly1[i].expon]+=poly1[i].coef;
}
scanf("%d",&num2);
for(j=0;j<num2;j++){
scanf("%d %d",&coef2,&expon2);
sumpoly[expon2]+=coef2;
for(i=0;i<num1;i++){
multpoly[expon2+poly1[i].expon]+=poly1[i].coef*coef2;
}
}
for(i=2000;i>=0;i--){
if(multpoly[i]){
if(flag){
flag=0;
}else{
printf(" ");
}
printf("%d %d",multpoly[i],i);
}
}
if(flag){
printf("0 0");
}
printf("\n");
flag=1;
for(i=1000;i>=0;i--){
if(sumpoly[i]){
if(flag){
flag=0;
}else{
printf(" ");
}
printf("%d %d",sumpoly[i],i);
}
}
if(flag){
printf("0 0");
}
return 0;
}
测试结果
问题整理
1.使用结构数组的方式是最恰当的。
2.注意+=和=的使用。
3.可以边输入实时解决的问题就不要拖到后边,会很棘手。