思路就是将字符与数字分开
#include <bits/stdc++.h>
using namespace std;
const double C = 12.01, H = 1.008, O = 16.00, N = 14.01;
double divide(char * p ) {
double number[1000];
char s[1000];
double sum = 0.00;
int j = 0;
int l = strlen(p);
p[l] = 't';
p[l + 1] = 't'; //为了防止指针越界,对可能读取到的位置进行了初始化处理
for (int i = 0; i < l; i++) { //分离阶段
if (isalpha(p[i])) {
if (isalpha(p[i + 1])) {
s[j] = p[i];
number[j] = 1;
j++;
} else {
if (isdigit(p[i + 2])) {
s[j] = p[i];
number[j] = (p[i + 1] - '0') * 10 + (p[i + 2] - '0');
j++;
} else {
s[j] = p[i];
number[j] = (p[i + 1] - '0');
j++;
}
}
}
}
for (int i = 0; i < j; i++) {
switch (s[i]) {
case 'C':
number[i] = number[i] * C;
break;
case 'H':
number[i] = number[i] * H;
break;
case 'O':
number[i] = number[i] * O;
break;
case 'N':
number[i] = number[i] * N;
break;
}
}
for (int i = 0; i < j; i++) {
sum += number[i];
}
return sum;
}
int main() {
int l;
cin >> l;
getchar();
char atom[100];
while (l--) {
gets(atom);
double sum = 0.00;
sum = divide(atom);
cout << setiosflags(ios::fixed);//小数点要保留三位
cout << setprecision(3) << sum << endl;
}
}
向上销售与交叉销售 向上销售(Up-selling):相信大多数光顾过麦当劳或是肯德基人都有这样的经历:在你点完你想要的鸡腿汉堡和饮料之后,餐厅的服务员一般都会问您:“需要加一份新炸的薯条吗?”其实这就是的一种典型的向上销售方式。这里的“薯条”作为向上销售的诱饵,诱使消费者增加购买,从而实现扩大销售的目的。实事上,向上销售的方式不仅仅存在于快餐厅里,在其他的商品市场上,也很常见。比如,
---恢复内容开始---最近尝试了下EF Extended,但是居然需要EF6.0以上,没办法,只能安装了,打开解决方案,选择库程序包管理下的程序包管理控制台(或者直接右击你需要使用扩展的解决方案选管理NuGet程序包),也不废话了,直接装上。使用简单的三层结果,在DAL层装上了extended扩展,点开引用一看,好家伙,引入了三个dll,一个是EntityFramework,一个E...
openlayers是一个偏重量型的前端GIS可视化类库,但是它基本上不具备空间分析运算的能力。举个例子,比如:1、判断线与线是否交叉2、线是否穿过多边形当然,它还是具备了一些简单的空间运算能力,比如geometry对象...
springboot访问静态资源时发生以下异常:javax.servlet.ServletException: Circular view path [login]: would dispatch back to the current handler URL [/login] again经过查找原因可知如下结果:由于重名了,spingboot不知道该执行哪个路径,所以报错。待深入...
1.环境win10 + Python3.6 + Django (2.1.10) + PyInstaller (4.2)安装方式一:在线安装pip install pyinstaller此处我是直接在我的虚拟环境在线安装#方式二:离线安装future-0.18.2.tar.gzpefile-2019.4.18.tar.gzaltgraph-0.17-py2.py3-none-any.whlpywin32_ctypes-0.2.0-py2.py3-none-any.whlpyinsta
NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,后面再加上面试题。Redis 系列:1、Redis 的五大数据类型Redis-key127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> set n...
OpenCV函数pointPolygonTest():C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist)用于判断一个点是否在轮廓中 :当measureDist设置为true时,若返回值为正,表示点在轮廓内部,返回值为负,表示在轮廓外部,返回值为0,表示在轮廓上。当measureDist...
[作者]:朱岩[摘自]: http://www.5dmail.net/html/2004-1-30/200413084348.htm我打赌当你见到Base64这个词的时候你会觉得在哪里见过,因为在你能够上网看到这篇文章的时候你已经在后台使用它了。如果您对二进制数有所了解,你就可以开始读它了。打开一封Email,查看其原始信息(您可以通过收取、导出该邮件用文本编辑器查看)。你会看到类似这样的一个效果
A题Description题目描述给N条边,请找三条边,使其组成一个三角形,并使得这个三角形的周长最大。输入存在多个样例。 第一行是一个整数N(3≤N;≤10,000),如果N=0,则表示输入结束。 第二行是N个整数,整数处于[1,100000000]之间,为N条边的长度。输出输出最大周长三角形的周长,如果不能组成三角形,输出0。样例输入55 3 4 10 2...
activity的作用 activity作为android四大组件中的一个,在我们开发的每个安卓应用中都会用到,是最常用的组件之一。一个activity就是我们平常看到的一个页面,一个安卓应用可以有很多个页面,其中每个页面就是一个activity。activity的基本用法 我们创建一个android应用之后,开发工具会自动为我们创建一个activity。activity其实就是一个继承了
#include&lt;stdio.h&gt;#include&lt;iostream.h&gt;#include&lt;list&gt;#include&lt;strstrea.h&gt;#include&lt;stdlib.h&gt;#define MaxVerNum 4#define MaxVertexNum 4#include&lt;vector&gt;//vetor是一个容器,存放任意...
[医疗信息化][DICOM教程]DICOM Tutorials 教程目录DICOM TutorialsCONTENTSBackgroundOverview Tutorials on DICOM (and related topics)DICOM Programming Tutorials using JavaDICOM Programming Tutorials using...