zoukankan      html  css  js  c++  java
  • UVA1586 UVALive3900 Molar mass

    Regionals 2007 >> Asia - Seoul

    问题链接:UVA1586 UVALive3900 Molar mass基础练习题,用C++语言编写程序。

    这个问题是根据分子式,求分子量。

    原子量使用map表来存储,所以用C++来编程。

    程序中,使用函数getchar()处理输入流,需要更高的编程技巧。

    AC的C++语言程序如下:

    /* UVA1586 UVALive3900 Molar mass */
    
    #include <iostream>
    #include <map>
    #include <cstdio>
    #include <cctype>
    
    using namespace std;
    
    map<char, double> aweight;
    
    int main()
    {
        int t, count, mflag;
        char c, molar;
        double molarmass;
    
        aweight['C'] = 12.01;
        aweight['H'] = 1.008;
        aweight['O'] = 16.00;
        aweight['N'] = 14.01;
    
        cin >> t;
        getchar();
        while(t--) {
            molarmass = 0.0;
    
            mflag = 0;
            count = 0;
            while((c=getchar()) != '
    ' && c != EOF) {
                if(isalpha(c)) {
                    if(mflag)
                        molarmass += ((count==0) ? 1 : count) * aweight[molar];
                    molar = c;
                    count = 0;
                    mflag = 1;
                } else if(isdigit(c))
                    count = count * 10 + c - '0';
            }
            if(mflag)
                molarmass += ((count==0) ? 1 : count) * aweight[molar];
    
    
            // 输出结果
            if(mflag)
                printf("%.3f
    ", molarmass);
        }
    
        return 0;
    }


  • 相关阅读:
    纪念又一次ak
    hdu5618
    bzoj3393
    bzoj3438
    [JSOI2007]建筑抢修
    [CQOI2014]数三角形
    [BZOJ2662][BeiJing wc2012]冻结
    [NOIP2015]运输计划
    [ZJOI2006]超级麻将
    [APIO2009]抢掠计划
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564545.html
Copyright © 2011-2022 走看看