码迷,mamicode.com
首页 > 其他好文 > 详细

uva1586molar mass字母和数

时间:2016-05-07 13:07:55      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

题意:给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C,H,O,N,原子量分别为12.01,1.008,16.00,14.01(单位:g/mol).

思路:做题时没注意到数字最多2位。

#include<cstdio>
#include<string.h>
#include<ctype.h>
#include<cstring>
#include<iostream>
using namespace std;

char x[300];

double mass(char a)
{
    if(a==C) return 12.01;
    if(a==H) return 1.008;
    if(a==O) return 16.00;
    if(a==N) return 14.01;
}
void solve()
{
    int len=strlen(x);
    double sum=0.0,m;
    x[len]=E;
    for(int i=0;i<len;i++)
    {
        if(x[i]>0&&x[i]<=9)
        {
            if(x[i-1]>0&&x[i-1]<=9)continue;
            else
            {
                if(x[i+1]>0&&x[i+1]<=9)sum+=(((int)(x[i]-0))*10+(((int)((x[i+1])-0))-1))*m;
                else sum+=m*(((int)(x[i]-0))-1);
            }
        }
        else
        {
            m=mass(x[i]);
            sum+=m;
        }
    }
    printf("%.3lf\n",sum);
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",x);
        solve();
        memset(x,0,sizeof(x));
    }
    return 0;
}

 

uva1586molar mass字母和数

标签:

原文地址:http://www.cnblogs.com/mu-ye/p/5467897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!