注意:非零项不用输出且不算在总个数内
由于这点开始一直17分
#include<cstdio> using namespace std; const int N = 1e3+5; int main() { int k,n; double a; double num[N]= {0}; int t = 2; int index = 0,cnt = 0; while(t--) { scanf("%d",&k); while(k--) { scanf("%d%lf",&n,&a); num[n] += a; if(index<n) index = n; } } for(int i = index; i>=0; --i) if(num[i]!=0.0) cnt++; printf("%d",cnt); for(int i = index; i>=0; --i) { if(num[i]!=0.0) printf(" %d %.1f",i,num[i]); } printf("\n"); return 0; }