题目
例如C6H5OH —94.108g/mol
#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <algorithm>
#include<ctype.h>
#define maxn 105
using namespace std;
char a[10005];
int main()
{
float sum=0.0,t;
scanf("%s",a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]=='C')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*12.01;
sum+=t;
}
else
sum+=12.01;
}
if(a[i]=='H')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*1.008;
sum+=t;
}
else
sum+=1.008;
}
if(a[i]=='O')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*16.00;
sum+=t;
}
else
sum+=16.00;
}
if(a[i]=='N')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*14.01;
sum+=t;
}
else
sum+=14.01;
}
}
printf("%.3fg/mol\n",sum);
return 0;
}
isdigit()函数
int isdigit(char a);
头文件 使用#include<ctype.h>
isdigit()函数的作用是判断字符串中的某个元素是否为0-9之间的阿拉伯数字;
若是 则返回1(非0) ,若不是 则返回0;