1. 程式人生 > >演算法競賽入門經典(第二版)第三章陣列和字串習題3-2分子量

演算法競賽入門經典(第二版)第三章陣列和字串習題3-2分子量

給出一種物質的分子式不帶括號,求分子量。本題中的分子式只包含4種原子分別為CHON,原子量分別為12.01,1.008,16.00,14.01(單位g/mol)。例如,C6H5OH的分子量是94.108g/mol

#include <stdio.h>
int main()
{
    float c=12.01,h=1.008,o=16.00,n=14.01;
    float num=0.0;
    char  a[max];
    scanf("%s",a);
    for(int i=0;a[i]!='\0';i++)
    {
        float b=1;
        if
(a[i]=='C') { if(isdigit(a[i+1])) b=a[i+1]-48;//減掉數字代表的ASCII碼 num+=c*b; } else if(a[i]=='H') { if(isdigit(a[i+1])) b=a[i+1]-48; num+=h*b; } else if(a[i]=='O') { if(isdigit(a[i+1])) b=
a[i+1]-48; num+=o*b; } else if(a[i]=='N') { if(isdigit(a[i+1])) b=a[i+1]-48; num+=n*b; } } printf("%.3f g/mol\n",num); }