笔记:1.两个不为0的数相加可能为0
2.浮点数的比较方法
3.输出的时候格式怎么办 本题空格放在哪有门道
4.不需要三个数组,一个就可以了,第二个“数组”输入的时候直接加在第一个上面
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
const double eps = 1e-8;
bool nequalZero(double db){
return fabs(db-0)>eps;
}
int main(){
double a[1010] = {0};
double b[1010] = {0};
double s[1010] = {0};
int na,nb,exp,cnt=0;
double coe;
scanf("%d",&na);
for(int i=0;i<na;i++){
scanf("%d %lf",&exp,&coe);
a[exp] = coe;
}
scanf("%d",&nb);
for(int i=0;i<nb;i++){
scanf("%d %lf",&exp,&coe);
b[exp] = coe;
}
for(int i=1000;i>=0;i--){
if(nequalZero(a[i])||nequalZero(b[i])){
s[i] = a[i] + b[i];
if(nequalZero(s[i])){//也许两个不为0的系数刚好正负抵消
cnt ++;
}
}
}
printf("%d",cnt);
for(int i=1000;i>=0;i--){
if(nequalZero(s[i])){
printf(" %d %.1f",i,s[i]);
}
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)