#include<cstdio>
int main()
{
float c[1001]={0};
int m,n,exp;
float num;
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%d%f",&exp,&num);
c[exp]+=num;
}
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%f",&exp,&num);
c[exp]+=num;
}
int cnt=0;
for(int i=0;i<1001;i++)
{
if(c[i]!=0) cnt++;
}
printf("%d",cnt);
for(int i=1000;i>=0;i--)
{
if(c[i]!=0.0)
printf(" %d %.1f", i, c[i]);
}
return 0;
}
几处小细节注意;
1.数组定义为float型,需要初始化,否则出来的结果吓人。开辟的空间为1001,但在遍历时要注意i的使用
2.float型对应%f,输出保留小数“%.1f”