习题3-2 分子量(Molar Mass,ACM/ICPC Seoul 2007,UVa1586)

原题链接:https://vjudge.net/problem/UVA-1586
分类:字符串
备注:水题
思路:没什么好说的,正确理解了题目意思就OK了

#include<stdio.h>
#include<ctype.h>
using namespace std;
int T;
double key[256], flag[256];
char s[105];
int main(void)
{
	key['C'] = 12.01; key['H'] = 1.008; key['O'] = 16.00; key['N'] = 14.01;
	scanf("%d", &T); getchar();
	while (T--)
	{
		fgets(s, 105, stdin);
		int i = 0, x = 0;
		double temp = 0, sum = 0;
		while (s[i] != '\n')
		{
			if (isdigit(s[i]))
			{
				if (isdigit(s[i + 1]))x = 10 * (s[i] - '0') + s[i + 1] - '0';
				else x = s[i] - '0';
				sum += key[s[i - 1]] * (x - 1);
			}
			else sum += key[s[i]];
			i++;
		}
		printf("%.3lf\n", sum);
	}
	return 0;
}
发布了22 篇原创文章 · 获赞 23 · 访问量 513

猜你喜欢

转载自blog.csdn.net/TK_wang_/article/details/104361067