Molar Mass UVA1586

#include
#include
char s[85];
void leng(double &sum,int &i,double value,int len){
int length;
if(i+1>=len || s[i+1]>'9')length=1;    //如果超出长度或者不是数字
    if(i+1 length=s[i+1]-'0';
i++;
if(i+1='0'&&s[i+1]<='9')
{
length=length*10+s[i+1]-'0';
}
}
  sum+=value*length;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%s",s);
int len=strlen(s);
double sum=0;
for(int i=0;i switch(s[i]){
case 'C':{
leng(sum,i,12.01,len);
break;
}
case 'H':{
leng(sum,i,1.008,len);
break;
}
case 'O':{
leng(sum,i,16.00,len);
break;
}
case 'N':leng(sum,i,14.01,len);
}
}
printf("%.3lf\n",sum);
}
return 0;

你可能感兴趣的:(其他)