您的位置:首页 > 其它

Uva 1586

2016-05-19 19:14 393 查看
一开始把题意理解错了,很尴尬啊 Orz

NH2CH2COOH理解为两个NH两个CH和一个COOH了

如果给高中化学老师知道了,不知道他是否会因我汗颜啊

#include <cstdio>

#include <iostream>

#include <cstring>

#include <cctype>

#include <cstdlib>

using namespace std;

float str[129];

int main()

{

str['C']=12.01;

str['N']=14.01;

str['O']=16.00;

str['H']=1.008;

int n;

cin>>n;

while(n--)

{

char a[50]= {0};

cin>>a;

double sum=0;

int vle=0;

if(!isdigit(a[strlen(a)-1])) a[strlen(a)]='1';

;

for(int i=0,j=0; i<strlen(a); )

{

char b[8]= {0};

if(!isdigit(a[i])&&!isdigit(a[i+1]))

{

if(a[i]=='C')sum+=12.01;

else if(a[i]=='O')sum+=16.00;

else if(a[i]=='N')sum+=14.01;

else if(a[i]=='H')sum+=1.008;

i++;

}

char c;

if(!isdigit(a[i])&&isdigit(a[i+1]))

{

c=a[i++];

while(isdigit(a[i]))

{

b[j++]=a[i++];

}

}

vle=atoi(b);

sum+=vle*str[c];

j=0;

}

;

printf("%.3f\n",sum);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: