习题3-2 分子量(字符+数字)

来源:互联网 发布:友谦网络招聘 编辑:程序博客网 时间:2024/04/29 15:27
#include <stdio.h>#include <string.h>#define maxn 81char s[maxn];int main(){    int t;    scanf("%d",&t);    for(int i=0;i<t;i++)    {        scanf("%s",s);        int len=strlen(s);        double tempmass=0;        int number=0;        int isletter=0;        int isnumber=0;        double totalmass=0;        for(int i=0;i<len;i++)        {            if(s[i]=='C'||s[i]=='H'||s[i]=='O'||s[i]=='N')            {                if(isletter==1)                    totalmass+=tempmass;                else if(isnumber==1)                    totalmass+=number*tempmass;                isletter=1;                isnumber=0;                number=0;                if(s[i]=='C')                    tempmass=12.01;                else if(s[i]=='O')                    tempmass=16.00;                else if(s[i]=='H')                    tempmass=1.008;                else if(s[i]=='N')                    tempmass=14.01;            }            else if(s[i]>='1'&&s[i]<='9')            {                if(isnumber==1)                    number=(number*10+s[i]-'0');                else if(isletter==1)                    number+=s[i]-'0';                isletter=0;                isnumber=1;            }        }        if(isletter==1)            totalmass+=tempmass;        else if(isnumber==1)            totalmass+=number*tempmass;        printf("%.3f\n",totalmass);    }}

0 0
原创粉丝点击