题目:给出一种物质的分子式(不带括号),求分子量。本体中的分子式只包含 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;
}