uva1586

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char a[100];
    int T;
    cin>>T;
    while(T--)
    {
        cin>>a;

        double ans=0;
        int n=strlen(a);
        for(int i=0; i<n; i++)
        {
            int  j=0;
            int m=0;
            for(int k=i+1; isdigit(a[k])&&k<n; k++) //注意此处的条件,如果是这种:C12H22O11,一定得k<n;
            {

                j=j*10+a[k]-48;//其实此处确定以后还要确定一种
                //--->比如CH,CH之间没有数字,但是都是1,所以才会有   if(j==0)j=1;
                m++;
            }
            if(j==0)j=1;
            if(a[i]=='C')
            {
                ans+=j*12.01;
            }
            else if(a[i]=='N')
            {
                ans+=j*14.01;
            }
            else if(a[i]=='O')
            {
                ans+=16.00*j;
            }
            else if(a[i]=='H')
            {
                ans+=1.008*j;
            }
            i+=m;
        }
        printf("%.3lf\n",ans);
    }
}



猜你喜欢

转载自blog.csdn.net/weixin_45929885/article/details/113592739
今日推荐