1052:相对分子质量分数: 1
题目描述
小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成的化学产物的相对分子质量令他很困惑,不知如何计算,请你编程帮他计算。
输入格式
输入的第一行是一个正整数n,表示有n组测试数据。
接下来n行每行输入一个字符串,表示某个分子式,分子式中只包含大写字母和数字。
注意:
输入数据只包含8种元素,而这8种元素的相对原子质量如下:
H(1),C(12),N(14),O(16),F(19),P(31),S(32),K(39)。
输出
对于每组输入,输出相对分子质量。
样例输入
4
H2O
KOH
CH4
SO2
样例输出
18
56
16
64
提示[+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
纯属个人娱乐:
#include<stdio.h>
#include<string.h>
int main()
{
int a[1000],n;
char b[1000];
a['H']=1;a['C']=12;
a['O']=16;a['F']=19;
a['P']=31;a['S']=32;
a['K']=39;a['N']=14;
scanf("%d",&n);
while(n--)
{
int s=0;
scanf("%s",b);
for(int i=0;i<strlen(b);i++)
{
if(b[i]>='A'&&b[i]<='Z')
{s+=a[b[i]];
}
else if(b[i]>='1'&&b[i]<='9')
{s+=(b[i]-'0'-1)*a[b[i-1]];
}
}
printf("%d\n",s);
}
}