UVAOJ1586题解

本文分享了一个使用C语言编写的简单程序,该程序能够计算化学分子中特定元素的总质量,通过解析输入字符串来确定各元素的数量并计算其分子量。


题目就是计算分子量。
#include<stdio.h>
#include<string.h>
int main()
{
	int i,j,t,m;
	float k,l,n;
	char a[100];
	scanf("%d",&t);
	for(i=0;i<t;i++)
	{
		l=0;m=0;n=0;
		scanf("%s",a);
		for(j=0;j<strlen(a);j++)
		{
			l=0;
			if(a[j]=='C')
			k=12.01;
			if(a[j]=='H')
			k=1.008;
			if(a[j]=='O')
			k=16.00;
			if(a[j]=='N')
			k=14.01;
			if((a[j]<'0'||a[j]>'9')&&(a[j+1]<'0'||a[j+1]>'9'))
			l=k;
			if ((a[j]>='0'&&a[j]<='9')&&(a[j+1]<'0'||a[j+1]>'9'))
			{
				l=(a[j]-'0')*k;
			}
			if((a[j]>='0'&&a[j]<='9')&&(a[j+1]>='0'&&a[j+1]<='9'))
			{
				l=k*((a[j]-'0')*10+a[j+1]-'0');
				j++;
			}
			n=n+l;
		}
		printf("%.3f\n",n);
	}
}
其实给我ac我是拒绝的。
因为看了代码就知道这个只能算后面为两位数的分子量。
这个问题的难点就是如何把字母后面的数字乘上前面的原子量。如代码所示,用了一大堆if',我还会回来改改的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值