POJ 2006 Litmus Test(水~)

470 篇文章 3 订阅

Description
pH = -log10 [H+] ,PH值根据氢离子浓度求出 ,(这里的 [H+] 浓度是摩尔每升为单位的)
Ka = [H+] [acid ions] / [acid] ,平衡常数K等于分解的氢离子和酸根离子乘积与未分解的酸分子的比值
现给出Ka,初始酸浓度,1mol酸完全溶解电离出的氢离子mol数和酸根离子mol数,求溶解后溶液pH
Input
多组输入,每组用例占一行,前两个为浮点数表示Ka和初始酸浓度,后两个整数表示1mol酸完全溶解电离出的氢离子mol数和酸根离子mol数,以0 0 0 0结束输入
Output
对于每组用例,输出酸溶解后溶液pH
Sample Input
1.6e-04 1.0e-01 1 1
1.6e-04 1.0e-01 4 1
1.5e-05 5.0e-02 1 2
0 0 0 0
Sample Output
2.407
2.101
3.216
Solution
化学计算题,解一元二次方程,注意指数形式可以直接用%lf输入
Code

#include<stdio.h>
#include<math.h>
int main()
{
    double ka,acid,ans,ph;
    int m,n;
    scanf("%lf%lf%d%d",&ka,&acid,&m,&n);
    while(ka&&acid&&m&&n)
    {
        ans=sqrt(ka*ka+4*m*n*ka*acid);
        ans=(-ka+ans)/(2*n);
        ph=-log10(ans);
        printf("%.3lf\n",ph);
        scanf("%lf%lf%d%d",&ka,&acid,&m,&n);
    }
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值