水题 UVA 1586 - Ancient Cipher化学式分子量计算

原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106424#overview

题目要求,根据所给化学量与原子量计算化学式的相对分子质量。。。其实就是怎么对应起来的事。

 

 

 

代码如下:

 1 #include <stdio.h>
 2 //给出一种物质的分子式(不带括号),求分子量。
 3 //本题中的分子式只包含4种原子:C,H,O,N,原子量分别为12.01,1.008,16.00,14.01. 
 4 int main() 
 5 {
 6     int t,i;
 7     scanf("%d", &t);
 8 
 9     while (t--) 
10     {
11         char s[100];
12         scanf("%s",s);
13         double sum = 0,num;
14         
15         for (i = 0; s[i]!='\0' ; i++)
16         {
17             if ('0'<=s[i+1] && s[i+1]<='9') 
18             {
19                 if ('0'<=s[i+2] && s[i+2]<='9') 
20                     num=10*(s[i+1]-'0')+s[i+2]-'0';
21                 else 
22                     num=s[i+1]-'0';
23             }
24             else num = 1;
25 
26             if(s[i]=='N') sum+=14.01*num;
27             else if(s[i]=='C') sum+=12.01*num;
28             else if(s[i]=='H') sum+=1.008*num;
29             else if(s[i]=='O') sum+=16.00*num;
30         }
31         printf("%.3lf\n",sum);
32     }
33     return 0;
34 }
View Code

      我的思路嘞,基本是按照字符来确定化学式进而去求质量。。嗯

posted @ 2016-02-15 21:00  么么哒小鬼  阅读(444)  评论(0编辑  收藏  举报