#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <set>
#include <map>
using namespace std;
const int maxn = 105;
char s[105];
int main(){
int t;
cin>>t;
while(t--){
scanf("%s",s);
double M,sum=0.0;
int len=strlen(s);
for(int i=0;i<len;i++){
if(s[i]>='0'&&s[i]<='9')continue;
if(s[i]=='C')
M=12.01;
else if(s[i]=='H')M=1.008;
else if(s[i]=='O')M=16.00;
else if(s[i]=='N')M=14.01;
int p=i+1;
int n;
if(s[p]>='0'&&s[p]<='9'){
n=0;
while(s[p]>='0'&&s[p]<='9'){
n=n*10+s[p]-'0';
p++;
}
}
else
n=1;
sum+=M*n;
}
printf("%.3lf\n",sum);
}
return 0;
}
Molar mass UVA - 1586
最新推荐文章于 2026-06-13 09:08:33 发布
本文介绍了一个简单的C++程序,该程序能够根据输入的化学式计算出对应分子的摩尔质量。程序通过解析化学符号和相应的原子量来实现计算,并考虑了化学式中元素的重复次数。

230

被折叠的 条评论
为什么被折叠?



