【算法竞赛入门经典】习题3-2 分子量(Molar Mass,ACMICPC Seoul 2007,UVa 1586)

it2022-05-05  120

#include<stdio.h> #include<string.h> #include<ctype.h> char s[10000]; float value(char x){ if(x=='C') return 12.01; else if(x=='H') return 1.008; else if(x=='O') return 16.00; else return 14.01; } int main(){ scanf("%s",s); int n=strlen(s); float sum=0.0; char x=s[0]; for(int i=1;i<n;i++){ if(isdigit(s[i])){ sum+=value(x)*(s[i]-'0'); } else{ if(!isdigit(x)){ sum+=value(x); } } x=s[i]; } if(!isdigit(x)) sum+=value(x); printf("%.3f\n",sum); return 0; }

最新回复(0)