题目:给出一种物质的分子式(不带括号),求分子量。本体中的分子式只包含 4 种原子,分别是C,H,O,N,原子量分别是12.01,1.008,16.00,14.01(单位:g/mol)。
例如:C6H5OH 的分子量是94.108 g/mol。
Sample Input
4
C
C6H5OH
NH2CH2COOH
C12H22O11
Sample Output
12.010
94.108
75.070
342.296
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
char sh[5]="CHON";
float ah[5]={12.01,1.008,16.00,14.01};
int t;
scanf("%d",&t);
while(t--)
{
char s[105];
scanf("%s",s);
int i,j;
float su=0.0;
for(i=0;i<strlen(s);i++)
{
for(j=0;j<4;j++)
if(s[i]==sh[j]){
if(strlen(s)!=1)
{
int k=i+1,sum=0,p=1;
while(s[k]>='0'&&s[k]<='9')
{
sum=sum+(s[k]-'\0'-48);
sum*=10;
k++;
}
if(sum/10==0)su+=ah[j];
else su+=(sum/10)*ah[j];
}
else su=su+ah[j];
break;
}
}
printf("%.3f\n",su);
}
return 0;
}