课后题--------求分子量-----Molar mass------




简单的化学式 求分子量问题 下面附上 代码和解析.
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std ;
int main()
{
double l,m,n,t,sum,w;
int i,q;
char a[];
scanf("%lf",&t);
while(t--)
{
w=m=;
scanf("%s",a);
l=strlen(a);
for(sum=i=;i<l;i++)
{
q=n=;
if(!(a[i]-''>=&&a[i]-''<=)) //当 这次不是数字 越界的时候 也不是数字哦.
{
if(a[i]=='C')
m=12.01;
else
if(a[i]=='H')
m=1.008;
else
if(a[i]=='O')
m=;
else
if(a[i]='N')
m=14.01;
n=; //用于处理 当这个化学元素没有后缀时的情况
}
if(a[i+]-''>=&&a[i+]-''<=) //有后缀时.
{
i++;
n=;
while(a[i]-''>=&&a[i]-''<=)
{
n=n*pow(,q)+(a[i]-'');
q++;
if(!(a[i+]-''>=&&a[i+]-''<=))
break;
i++;
}
}
sum=sum+m*n;
}
printf("%.3lf\n",sum);
}
return ;
}
课后题--------求分子量-----Molar mass------的更多相关文章
- 【OI】计算分子量 Molar mass UVa 1586 题解
题目:(由于UVa注册不了,还是用vjudge) https://vjudge.net/problem/UVA-1586 详细说明放在了注释里面.原创. 破题点在于对于一个元素的组合(元素+个数),只 ...
- 分子量(Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s[20]; scanf ...
- UVa 1586 Molar mass --- 水题
UVa 1586 题目大意:给出一种物质的分子式(不带括号),求分子量.本题中分子式只包含4种原子,分别为C.H.O.N, 原子量分别为12.01,1.008,16.00,14.01 解题思路:先实现 ...
- 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586)
习题 3-3 分子量 (Molar Mass,ACM/ICPC Seoul 2005,UVa1586) 给出一种物质的分子式(不带括号),求分子量.本题中的分子式只包含4种原子,分别为C,H,O,N, ...
- 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...
- Molar mass UVA - 1586
An organic compound is any member of a large class of chemical compounds whose molecules contain c ...
- 算法(JAVA)----两道小小课后题
LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令 ...
- 课后题2.87&2.86
课后题2.86&2.87 单纯就是想加点分第十章的题目都被做过了就做下第二章的,正好复习一下前面学的知识,第二章给我剩下的题目也不多了,我就挑了这个题目. 2.86 考虑一个基于IEEE浮点格 ...
- c++面向对象程序设计 课后题 答案 谭浩强 第四章
c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...
随机推荐
- hdu 4430 二分+枚举
/* 二分+枚举 枚举k会超时,枚举r还要优化,有可能会超64 */ #include<stdio.h> #include<math.h> #define ll __int64 ...
- 【bzoj2152】聪聪可可 点分治
[bzoj2152]聪聪可可 2014年9月7日3,5472 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是 ...
- 好用的window命令
Nslookup-------IP地址侦测器 chkdsk-----Chkdsk磁盘检查 regedt32-------注册表编辑器 regedit----注册表 perfmon----计算机性能监测 ...
- Intent使用Parcelable传递对象
package com.pingyijinren.test; import android.os.Parcel; import android.os.Parcelable; import java.i ...
- codeforces 762E(cdq分治)
题意: n个电台,每个电台有三个属性xi, ri, fi.分别代表电台的坐标,电台的播报范围,以及播报的频率. 对于一对电台i, j,若min(ri, rj) >= |xi - xj|,那么他们 ...
- Ubuntu 16.04升级Linux内核为4.7.0最快的方法
升级内容有很多好处,比如支持最新硬件驱动,使系统更安装等.但是升级内容也会带来一些问题,比如一些软件的兼容性问题,从而出现一些莫名其妙的问题等,所以升级时要慎重考虑. 升级方法: 下载脚本: http ...
- 深入理解windows系统内的GMT和时区
http://www.itshanghai.net/technology/wdzl_windowsxp/ UTC(Universal Time Coordinated)是通用协调时,这两者几乎是一 ...
- windows下编译jpeg
项目为了脱离OpenCV,直接采用libjpeg,记录在windows下jpeg安装. 项目地址http://www.ijg.org/ 下载解压缩jpeg-9a 看了看OpenCV中对libjpeg的 ...
- html中布局,让下一个子元素占据剩余的高度
---------------------------------------------------------------------- 原因是: height:100% 引起的, 这句话的意思是 ...
- hdu 3006 The Number of set(思维+壮压DP)
The Number of set Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...