您的位置:首页 > 其它

常州大学新生寒假训练会试 H 酸碱滴定【精度 】

2018-02-07 18:07 232 查看

题目描述

有时候你会抱怨,什么时候才能到终点。

有时候你会迫不及待,怎么颜色还不改变。

滴定管长场的,我们的路长长的。

用心的放入每一滴,终点就在你手心。

今天小星需要去完成一个酸碱滴定实验。,实验室老师要求用 A mol/L 的HCL去测定一瓶NaOH的浓度。首先小星取出了一个锥形瓶,在里面放入的Bml的NaOH,并滴加1-2滴甲基橙,然后用HCL去滴定他 当滴定至恰好变为红色时(可以认为H离子浓度等于OH离子浓度),用了C ml

小星现在需要计算NaOH的浓度是多少?单位(mol/L)

对于浓度采用化学里“四舍六入五成双”方法保留2位小数

规则1 :第三位小数≤4 时舍去

规则2: 第三位小数≥6时进上

规则3: 第三位小数等于5时

3.1首先根据 5后面的数字来定,当5后有数时,舍5入1;

3.2当5后无有效数字时,需要分两种情况来讲:

3.2.1 5前为奇数,舍5入1;

3.2.2 5前为偶数,舍5不进(0是偶数)

例如

9.8249=9.82 规则1

9.82671=9.83 规则2

9.82501=9.83 规则3.1

9.8351 =9.84 规则3.1

9.8350=9.84 规则3.2.1

9.8250=9.82 规则3.2.2

输入描述:

输入第一行一个数T(T<=20)表示数据组数

对于每组数据输入 A,B,C三个3位小数

0.000

输出描述:

结果“四舍六入五成双”保留2位小数

示例1

输入

3

10.000 10.000 1.825

10.000 10.000 9.835

1.010 21.325 19.823

输出

1.82

9.84

0.94

说明

样例1中计算出的结果为 1.8250000000根据(规则3.2.2) 答案应该为1.82

9.835->9.84(规则3.2.1)

题意: 略

分析 : 这是化学中的,有点基础的都知道如果中和的话,那么 氢离子和氢氧根离子的分子是相等的,我们又知道的两者的浓度,直接可知 NaOH的浓度为
a*c/b
,下面就是精度上了,直接判断即可,如果第三位不为5的话,直接根据正常的四舍五入即可,如果是5的话,再判断5后面是否为0,还有5前面的数字的奇偶性,这里我们考虑到每次运算时要加绝对误差,即eps 我这里取得
1e-12


参考代码

#include <bits/stdc++.h>

using namespace std;

#define eps 1e-12

int main() {
int T;cin>>T;
while(T--) {
double a,b,c;cin>>a>>b>>c;
double res = a*c/b;
long long t = (long long)(res*1000 + eps);
if(t % 10 == 5) {
double s = res - (double) (t*1.0/1000);
long long r = (long long ) (res * 100+eps);
if(s > eps) {
printf("%.2f\n",(double) ((r + 1)*1.0/100));
} else {
if(r%2 == 1) {
r++;
}
printf("%.2f\n",(double) ((r)*1.0/100));
}
} else {
printf("%.2f\n",res);
}
}
return 0;
}


如有错误或遗漏,请私聊下UP,thx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: