#include<stdio.h>
#include<stdbool.h>
int main()
{
int k , n;//数据个数以及下标数
double a;//键入的数值
double num[1001] = {
0};
bool judge[1001];//判断数组中的值是没有被赋值过,还是处理后加和为0
int cnt = 0;//记录
//第一行输入
scanf("%d",&k);
for(int i = 0;i < k;i++){
scanf("%d %lf",&n,&a);
num[n] += a;
judge[n] = 1;
}
//第二行输入
scanf("%d",&k);
for(int i = 0;i < k;i++){
scanf("%d %lf",&n,&a);
num[n] += a;
judge[n] = 1;
}
//记录有值下标数,并输出
for(int i=0;i<1001;i++){
if(num[i]!=0)
cnt++;
}
printf("%d",cnt);
//挨个输出有值的下标和对应的数值
for(int i=1000;i>=0;i--){
//如果这个值不为0,则不需要判断是否是赋值过,但结果仍为0的情况
if(num[i]!=0.0){
printf(" %d %.1lf",i,num[i]);
}
else{
continue;
}
}
return 0;
}
PAT_甲级_1002_C语言
猜你喜欢
转载自blog.csdn.net/qq_43511405/article/details/108701513
今日推荐
周排行