#include<stdio.h>
#include<string.h>
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
char s[20];
int temp;
double sum=0.0;
scanf("%s",s);
for(int i=0; i<strlen(s); i++)
{
switch(s[i])
{
case 'C':
{
if(s[i+1]>='0'&&s[i+1]<='9') //用i+1去判断下一位是数字
{
temp=s[++i]-'0';
while(s[i+1]>='0'&&s[i+1]<='9') //直到下一位不是数字为止,注意要++i;
{
temp=temp*10+(s[++i]-'0');
}
sum=sum+12.01*temp;
}
else
sum+=12.01;
};
break;
case 'H':
{
if(s[i+1]>='0'&&s[i+1]<='9')
{
temp=s[++i]-'0';
while(s[i+1]>='0'&&s[i+1]<='9')
{
temp=temp*10+(s[++i]-'0');
}
sum=sum+temp*1.008;
}
else
sum+=1.008;
};
break;
case 'O':
{
if(s[i+1]>='0'&&s[i+1]<='9')
{
temp=s[++i]-'0';
while(s[i+1]>='0'&&s[i+1]<='9')
{
temp=temp*10+(s[++i]-'0');
}
sum=sum+temp*16.00;
}
else
sum+=16.00;
};
break;
case 'N':
{
if(s[i+1]>='0'&&s[i+1]<='9')
{
temp=s[++i]-'0';
while(s[i+1]>='0'&&s[i+1]<='9')
{
temp=temp*10+(s[++i]-'0');
}
sum=sum+temp*14.01;
}
else
sum+=14.01;
};
break;
}
}
printf("%.3lfg/mol\n",sum);
}
return 0;
}
分子量~C语言
最新推荐文章于 2021-12-17 19:48:35 发布