#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
#define zero 0.000001
float sum[1001];
int getPloynomials()
{
int n,index,max = -1;
float num;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>index>>num;
if(index>max) max = index;
sum[index] += num;
}
return max; //返回最大的次数
}
int main()
{
int max1,max2,num=0,count=0;
memset(sum,0,sizeof(sum));
max1 = getPloynomials();
max2 = getPloynomials();
max1 = max(max1,max2);
for(int i=0;i<=max1;i++)//得到总项数
{
if(fabs(sum[i])>zero) count++;
}
if(count==0) cout<<count;
else cout<<count<<" ";
for(int i=max1;i>=0;i--)
{
if(fabs(sum[i])>zero)
{
cout<<i<<" ";
num++;
if(num!=count){
printf("%.1f ",sum[i]);
}
else
{
printf("%.1f",sum[i]);
}
}
}
}
控制输出小数点之后的位数: printf("%.1f",x) 1表示表示小数点之后一位