zoukankan      html  css  js  c++  java
  • 分子量 (Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)

     解题思路:

    1.将分子量用double 数组记录下来

    2.将字符串存储在字符数组中,从头向后扫描,一直记住“字母”,对下一个字符进行判断,是否是数字,如果是数字:用一个整数记录,本代码中用的sum,同时下标++。

      进行判断,查看是否对数字进行了记录,即查看sum是否进入了while循环并被赋值,如果没有被赋值,说明下一个字符不是数字,直接对W(总记录)值进行赋值,为当前字符的权值(分子量),即double数组的中的值。如果被赋值,说明字符后面是一个数字,sum中存放了该“数字”,也是对w赋值,不过此时是赋sum倍的当前字符的权值(分子量)。

    3.最后整个字符串循环完毕,输出总记录W即可。

    #include <stdio.h>
    int main(void)
    {
        double darr[200];
        int n,sum,p;
        double w;
        char c,carr[1000];
        darr['C']=12.01;
        darr['H']=1.008;
        darr['O']=16.00;
        darr['N']=14.01;
        scanf("%d",&n);
        while(n--)
        {
            p=0;
            w=0;
            scanf("%s",carr);
            while(carr[p]!='')
            {
                sum=0;
                c=carr[p];
                p++;
                while(carr[p]>='0' && carr[p]<='9')
                {
                    sum=sum*10+carr[p]-'0';
                    p++;
                }
                if(sum)
                    w=w+sum*(darr[c]);
                else
                    w+=(darr[c]);
            }
            printf("%.3f
    ",w);
        }
        return 0;
    }
    

      

  • 相关阅读:
    JChartFree创建饼形图
    JFreeChart设置点的颜色
    JChartFree使用散点图
    JChartFree常用数据集
    博客园安家了
    在Android中什么是异步执行;
    XmlPullParserException
    构造器的执行顺序
    Sqlite之contentProvider
    使用java获取歌曲的属性
  • 原文地址:https://www.cnblogs.com/A--Q/p/5700949.html
Copyright © 2011-2022 走看看