题
给你一个只含CHON的有机物的化学式如C6H5OH求相对分子质量
。。。
#include<cstdio> #include<cctype> int t; double w,m[5]= {12.01,1.008,16.00,14.01}; char s[100];void add(int f,int i) {if(isdigit(s[i+1]))if(isdigit(s[i+2]))w+=m[f]*((s[i+1]-'0')*10+s[i+2]-'0');else w+=m[f]*(s[i+1]-'0');else w+=m[f]; }int main() {scanf("%d ",&t);//注意这里%d后面有个空格,这样就不怕后面读到回车啦while(t--){scanf("%s",s);w=0;for(int i=0; s[i]; i++){switch(s[i]){case 'C':add(0,i);break;case 'H':add(1,i);break;case 'O':add(2,i);break;case 'N':add(3,i);break;default:break;}}printf("%.3lfn",w);}return 0; }
#include<cstdio> #include<cctype>int t; double w,m[5]= {12.01,1.008,16.00,14.01}; char p[5]="CHON"; char s[100];void add(int f,int i) {if(isdigit(s[i+1]))if(isdigit(s[i+2]))w+=m[f]*((s[i+1]-'0')*10+s[i+2]-'0');else w+=m[f]*(s[i+1]-'0');else w+=m[f]; }int main() {scanf("%d ",&t);//注意这里%d后面有个空格,这样就不怕后面读到回车啦while(t--){scanf("%s",s);w=0;for(int i=0; s[i]; i++)for(int j=0; j<4; j++)if(s[i]==p[j])add(j,i);printf("%.3lfn",w);}return 0; }
转载于:.html
本文发布于:2024-02-02 22:21:07,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170688366546820.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |