本题为小紫书的57页第三题
主要在于判断字母还是数字,若为数字要连续读入整数,如果下一个还是数字 就要i++,如果不是就跳出循环。如果一个是字母下一个也为字母就需要当做把这个字母直接读入一个,要注意的就是最后一个如果是字母也要当做一个。
// 连续读入整数 直到不再为数字 先记下之前的字母
#include
#include
#include
char s[100];
int main ()
{int T;scanf("%d",&T);while (T--){scanf("%s",s);int i;int sum=0;double m=0,n=0;for(i=0;i='A'&&s[i]<'Z') //if(isupper(s[i])){char c;c=s[i];switch (c){case 'C':n=12.01;break;case 'H':n=1.008;break;case 'O':n=16.00;break;case 'N':n=14.01;break;}sum=0;}while(isdigit(s[i])){sum=sum*10+s[i]-'0';if(!isdigit(s[i+1])){break;}else i++;}if(sum!=0)m+=sum*n;else if(s[i+1]>='A'&&s[i+1]<='Z'||i==strlen(s)-1) //else if(isupper(s[i+2])||i==strlen(s)-1)m+=n;}printf("%.3f\n",m);}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!