每次写代码都比别人长,思路拐弯。我也是醉了。。。。。。你等着等着我再次修改你,竟然催我走,
#include <iostream>
#include <cstdio>
#include<algorithm>
#include <cstring>
#include <cstdlib>
using namespace std;
using namespace std;
int main()
{
int num;
char a[100];
int i,len;
double sum;
cin>>num;
getchar();
while(num--)
{
sum=0.00;
gets(a);
len=strlen(a);
for(i=0;i<len;i++)
{
if(a[i]>'A'&&(a[i+1]=='\0'||a[i+1]>'A'))
{
if(a[i]=='C')
sum+=12.01;
else if(a[i]=='H')
sum+=1.008;
else if(a[i]=='O')
sum+=16.00;
else if(a[i]=='N')
sum+=14.01;
}
int temp=0,j=0;
char flag;
if(a[i]>'A'&&(a[i+1]<='9')&&a[i+1]>='0')
{
flag=a[i];
temp=0,j=0;
while((a[i+1]<='9')&&a[i+1]>='0')
{
// b[j]=a[i];
if(j==0)
temp=a[i+1]-'0';
else
temp=temp*10+a[i+1]-'0';
i++;
j++;
}
// b[j]='\0';
// temp= atoi(b);
if(flag=='C')
sum+=12.01*temp;
else if(flag=='H')
sum+=1.008*temp;
else if(flag=='O')
sum+=16.00*temp;
else if(flag=='N')
sum+=14.01*temp;
}
}
printf("%.3lf\n",sum);
}
return 0;
}