//计算分子量 其中相对原子质量为:C 12.01 H 1.00 O 16.00 N 14.01
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
struct molarmass
{
char malor;
double mass;
}malormass[4]={'C',12.01,'H',1.008,'O',16.00,'N',14.01};
int main()
{
char s[100];
int n;
double sum;
double massnow;
double number;
scanf("%d",&n);
getchar();
for(int i=1;i<=n;i++){
scanf("%s",s);
number=0;
sum=0;
for(int j=0;s[j]!='\0';j++){
if(isalpha(s[j])){
for(int k=0;k<=3;k++)
if(malormass[k].malor==s[j])
massnow=malormass[k].mass;
if(isalpha(s[j+1])||s[j+1]=='\0')
sum+=massnow;
else{
while(isdigit(s[++j]))
number=number*10+s[j]-'0';
sum+=massnow*number;
number=0;
j--;
}
}
}
printf("%.3f\n",sum);
}
return 0;
}
UVa 1586 Molar Mass(分子量)
最新推荐文章于 2021-08-10 11:05:26 发布