当前位置: 代码迷 >> 综合 >> 分子量 UVa1586
  详细解决方案

分子量 UVa1586

热度:94   发布时间:2023-12-28 06:24:42.0

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