演算法競賽入門經典(第二版)第三章陣列和字串習題3-2分子量
阿新 • • 發佈:2018-11-04
給出一種物質的分子式不帶括號,求分子量。本題中的分子式只包含4種原子分別為CHON,原子量分別為12.01,1.008,16.00,14.01(單位g/mol)。例如,C6H5OH的分子量是94.108g/mol
#include <stdio.h>
int main()
{
float c=12.01,h=1.008,o=16.00,n=14.01;
float num=0.0;
char a[max];
scanf("%s",a);
for(int i=0;a[i]!='\0';i++)
{
float b=1;
if (a[i]=='C')
{
if(isdigit(a[i+1])) b=a[i+1]-48;//減掉數字代表的ASCII碼
num+=c*b;
}
else if(a[i]=='H')
{
if(isdigit(a[i+1])) b=a[i+1]-48;
num+=h*b;
}
else if(a[i]=='O')
{
if(isdigit(a[i+1])) b= a[i+1]-48;
num+=o*b;
}
else if(a[i]=='N')
{
if(isdigit(a[i+1])) b=a[i+1]-48;
num+=n*b;
}
}
printf("%.3f g/mol\n",num);
}