简单的化学式 求分子量问题 下面附上 代码和解析.
1 #include2 #include 3 #include 4 #include 5 using namespace std ; 6 int main() 7 { 8 double l,m,n,t,sum,w; 9 int i,q;10 char a[200];11 scanf("%lf",&t);12 while(t--)13 {14 w=m=0;15 scanf("%s",a);16 l=strlen(a);17 for(sum=i=0;i =0&&a[i]-'0'<=9)) //当 这次不是数字 越界的时候 也不是数字哦.21 {22 if(a[i]=='C')23 m=12.01;24 else25 if(a[i]=='H')26 m=1.008;27 else28 if(a[i]=='O')29 m=16;30 else31 if(a[i]='N')32 m=14.01;33 n=1; //用于处理 当这个化学元素没有后缀时的情况34 }35 if(a[i+1]-'0'>=0&&a[i+1]-'0'<=9) //有后缀时.36 {37 i++;38 n=0;39 while(a[i]-'0'>=0&&a[i]-'0'<=9)40 {41 n=n*pow(10,q)+(a[i]-'0');42 q++;43 if(!(a[i+1]-'0'>=0&&a[i+1]-'0'<=9))44 break;45 i++;46 }47 }48 sum=sum+m*n;49 }50 printf("%.3lf\n",sum);51 }52 return 0;53 }