UVa 1586 Molar Mass(分子量)

来源:互联网 发布:linux deploy镜像站 编辑:程序博客网 时间:2024/06/11 21:13
//计算分子量  其中相对原子质量为:C 12.01 H 1.00 O 16.00 N 14.01#include <stdio.h>#include <stdlib.h>#include <ctype.h>struct molarmass{    char malor;    double mass;}malormass[4]={'C',12.01,'H',1.008,'O',16.00,'N',14.01};int main(){    char s[100];    int n;    double sum;    double massnow;    double number;    scanf("%d",&n);    getchar();    for(int i=1;i<=n;i++){      scanf("%s",s);      number=0;      sum=0;      for(int j=0;s[j]!='\0';j++){        if(isalpha(s[j])){            for(int k=0;k<=3;k++)                if(malormass[k].malor==s[j])                   massnow=malormass[k].mass;            if(isalpha(s[j+1])||s[j+1]=='\0')                sum+=massnow;            else{                while(isdigit(s[++j]))                    number=number*10+s[j]-'0';                sum+=massnow*number;                number=0;                j--;            }        }      }      printf("%.3f\n",sum);    } return 0;}

1 0