#include <stdio.h>
#include <stdlib.h>
//注意、合并后系数为零的项要丢掉
struct Polynomials{
int exponents;
float coefficients;
};
int main(int argc, char *argv[]) {
int coefficients_num_1,coefficients_num_2,i,j,k;
scanf("%d",&coefficients_num_1);
struct Polynomials polynomials_1[coefficients_num_1];
for(i=0;i<coefficients_num_1;i++){
scanf(" %d %f",&polynomials_1[i].exponents,&polynomials_1[i].coefficients);
}
scanf("%d",&coefficients_num_2);
struct Polynomials polynomials_2[coefficients_num_2];
for(i=0;i<coefficients_num_2;i++){
scanf(" %d %f",&polynomials_2[i].exponents,&polynomials_2[i].coefficients);
}
struct Polynomials polynomials_3[coefficients_num_1+coefficients_num_2];
i=0;j=0;k=0;
while(i<coefficients_num_1||j<coefficients_num_2){
if(i<coefficients_num_1&&j<coefficients_num_2){
if(polynomials_1[i].exponents>polynomials_2[j].exponents){
polynomials_3[k].exponents=polynomials_1[i].exponents;
polynomials_3[k].coefficients=polynomials_1[i].coefficients;
i++;
k++;
}else if(polynomials_1[i].exponents<polynomials_2[j].exponents){
polynomials_3[k].exponents=polynomials_2[j].exponents;
polynomials_3[k].coefficients=polynomials_2[j].coefficients;
j++;
k++;
}else if(polynomials_1[i].exponents==polynomials_2[j].exponents){
polynomials_3[k].exponents=polynomials_1[i].exponents;
polynomials_3[k].coefficients=polynomials_1[i].coefficients+polynomials_2[j].coefficients;
if(polynomials_3[k].coefficients==0){
i++;
j++;
continue;
}else{
i++;
j++;
k++;
}
}
}else if(i<coefficients_num_1&&j>=coefficients_num_2){
polynomials_3[k].exponents=polynomials_1[i].exponents;
polynomials_3[k].coefficients=polynomials_1[i].coefficients;
i++;
k++;
}else if(i>=coefficients_num_1&&j<coefficients_num_2){
polynomials_3[k].exponents=polynomials_2[j].exponents;
polynomials_3[k].coefficients=polynomials_2[j].coefficients;
j++;
k++;
}
}
printf("%d",k);
for(i=0;i<k;i++){
printf(" %d %.1f",polynomials_3[i].exponents,polynomials_3[i].coefficients);
}
}
PAT甲级1002
最新推荐文章于 2019-08-06 20:15:12 发布