#include<stdio.h>
#include<string.h>
int main(){
char a[100];
scanf("%s",a);
int i=0;
float s=0;
int n=strlen(a);
while(n--){
switch(a[i]){
case 'C':
if(a[i+1]>'A'&&a[i+1]<'Z'||a[i+1]=='\0'){
s+=12.01;
i++;
}
else {
s+=(a[i+1]-'0')*12.01;
i=i+2;
}
break;
case 'H':
if(a[i+1]>'A'&&a[i+1]<'Z'||a[i+1]=='\0'){
s+=1.008;
i++;
}
else{
s+=(a[i+1]-'0')*1.008;
i=i+2;
}
break;
case 'O':
if(a[i+1]>'A'&&a[i+1]<'Z'||a[i+1]=='\0'){
s+=16.00;
i++;
}
else{
s+=(a[i+1]-'0')*16.00;
i=i+2;
}
break;
case 'N':
if(a[i+1]>'A'&&a[i+1]<'Z'||a[i+1]=='\0'){
s+=14.01;
i++;
}
else{
s+=(a[i+1]-'0')*14.01;
i=i+2;
}
break;
}
}
printf("%f",s);
return 0;
}
我是这样写的
求求一个好的方法呜呜 有没有更好的呀