无坑水

来源:互联网 发布:网络交换机的价格 编辑:程序博客网 时间:2024/05/22 07:40

1052:相对分子质量分数: 1

时间限制:1 秒
内存限制:32 兆
特殊判题: 否
提交:23
解决: 17

题目描述

小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成的化学产物的相对分子质量令他很困惑,不知如何计算,请你编程帮他计算。

输入格式

输入的第一行是一个正整数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);}}


0 0