习题3-2 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol)。例如,C6H5OH的分子量为94.108g/mol。
Note:
#include <stdio.h> #include <string.h> #include <ctype.h> #define maxn 1000 const char molecule[]="CHON";//元素名称 double weight[]={12.01,1.008,16.00,14.01};//元素质量 int main() { char s[maxn]; double w=0,sum=0;//w是当前元素质量,sum是总质量 int num; scanf("%s",s); for(int i=0;s[i];i++) { if(isalpha(s[i])==1)//如果是元素 { for(int j=0;j<4;j++) { if(s[i]==molecule[j]) { w=weight[j]; } } if(isdigit(s[i+1])==1)//检查后一个字符是不是数字,如果是数字则与前一个元素合并 { num=(s[i+1]-'0');//切记这里的赋值方法 sum+=w*num; i++; } } } printf("%.3f\n",sum); }
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。