my Code:
Code: Select all
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <string>
#include <algorithm>
#include <cctype>
#include <vector>
#include <cstdlib>
#define pb push_back
#define pf printf
#define sf scanf
#define N 81
using namespace std;
struct my
{
char c;
double fl;
};
int main()
{
int t,len=0,d,b,slen=0; double r;
vector <char> vc;
vector <int> v;
vector <float> vf;
char ch[N]; my ar[N];
//float ar[N];
sf("%d",&t);
getchar();
while (t--)
{
gets(ch); b=0;
ar[slen].c=ch[0];
for (int i=0;i<=strlen(ch);i++)
{
r = 0.000;
if (ch[i]=='C' or ch[i]=='H' or ch[i]=='O' or ch[i]=='N' or ch[i]=='\0')
{
d=i; //ar[slen].c = ch[i];
if (d==0) continue;
else
{
for (int j=b+1;j<d;j++)
{
r = (ch[j]-'0')+(r*10);
}
//v.pb(r);
if (r==0)
{
r+=1.000;
}
ar[slen].fl = (double) r; slen++;
ar[slen].c = ch[i];
//slen++;
b = d;
}
//ar[slen].c = ch[d];
//ar[slen].fl = (float) r; slen++;
//slen++;
//b = d;
}
}
/*for (int i=0;i<slen;i++)
{
pf ("%c%f; ",ar[i].c,ar[i].fl);
}*/
double s = 0.00;
for (int i=0;i<slen;i++)
{
if (ar[i].c == 'C')
{
s+=(ar[i].fl * 12.01);
}
else if (ar[i].c == 'H')
{
s+=(ar[i].fl * 1.008);
}
else if (ar[i].c == 'O')
{
s+=(ar[i].fl * 16.00);
}
else if (ar[i].c == 'N')
{
s+=(ar[i].fl * 14.01);
}
else
{
continue;
}
}
pf ("%0.3lf\n",1.00*s);
slen=0;
}
return 0;
}