题目原址:http://www.patest.cn/contests/pat-a-practise/1002
注:
1)我是一位一位存的结果。。(试图三位三位存,各种出错。。)
2)最后一组测试数据老是格式错误,将输出格式改成:第一次输出不带空格,之后循环时先输出空格,之后正确。代码如下:
#include<stdio.h>
#include<string.h>
int main(){
int n1, n2, num;
int e1, e2;
float c1[1010], c2[1010], ans[1010];
int i, max, min, cnt;
memset(c1, 0, sizeof(c1));
memset(c2, 0, sizeof(c2));
max = -1;
min = 1001;
scanf("%d", &n1);
for(i = n1; i > 0; i--){
scanf("%d", &e1);
if(max < e1)
max = e1;
if(min > e1)
min = e1;
scanf("%f", &c1[e1]);
}
scanf("%d", &n2);
for(i = n2; i > 0; i--){
scanf("%d", &e2);
if(max < e2)
max = e2;
if(min > e2)
min = e2;
scanf("%f", &c2[e2]);
}
num = 0;
for(i = min; i <= max; i++){
ans[i] = c1[i] + c2[i];
if(ans[i])
num++;
}
printf("%d", num);
cnt = num;
for(i = max; i >= min && cnt > 0 ; i--){
if(ans[i]){
printf(" %d %.1lf", i, ans[i]);
cnt--;
}
}
printf("\n");
return 0;
}