题意:给出物质的分子式,计算它的相对原子质量
因为原子的个数是在2到99之间的,所以找出一个是字母之后,再判断一下它的后两位就可以找出这种原子的个数了
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 char s[1005]; 8 double yuansu[5]; 9 10 11 int main() 12 { 13 int ncase,i,ans,len; 14 double tmp=0; 15 scanf("%d",&ncase); 16 yuansu[2]=12.01; 17 yuansu[7]=1.008; 18 yuansu[14]=16.00; 19 yuansu[13]=14.01; 20 while(ncase--) 21 { 22 cin>>s; 23 len=strlen(s); 24 tmp=0; 25 for(i=0;i<len;i++) 26 { 27 ans=0; 28 if(isalpha(s[i])) 29 { 30 if(isdigit(s[i+2])&&isdigit(s[i+1])) 31 ans+=s[i+2]-'0'+(s[i+1]-'0')*10; 32 else if(isdigit(s[i+1])) 33 ans+=s[i+1]-'0'; 34 else 35 ans=1; 36 } 37 tmp+=ans*1.0*yuansu[s[i]-'A']; 38 } 39 printf("%.3lf ",tmp); 40 } 41 }