本文主要是介绍习题3-2 分子量 ——《算法竞赛入门经典》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C,H,O,N,原子量分别为12.01,1.008,16.00,14.01(单位:g/mol)。例如,C6H5OH的分子量为94.108g/mol。
#include<stdio.h>
#include<string.h>
#define MAX 80
#define C_val 12.01
#define H_val 1.008
#define O_val 16
#define N_val 14.01int main(){char s[MAX];gets(s);float sum=0; for(int i=0; i<strlen(s); i++){if(s[i]=='C'){if(s[i+1]>='0' && s[i+1]<='9'){int t1 = int(s[i+1]-'0'); //int(字符-’0’)=整数sum += t1*C_val;}elsesum += C_val;}if(s[i]=='H'){if(s[i+1]>'0' && s[i+1]<'9'){int t2 = int(s[i+1]-'0');sum += t2*H_val;}elsesum += H_val;}if(s[i]=='O'){if(s[i+1]>'0' && s[i+1]<'9'){int t3 = int(s[i+1]-'0');sum += t3*O_val;}elsesum += O_val;}if(s[i]=='N'){if(s[i+1]>'0' && s[i+1]<'9'){int t4 = int(s[i+1]-'0');sum += t4*N_val;}elsesum += N_val;}}printf("%.3f\n", sum);return 0;
}
这篇关于习题3-2 分子量 ——《算法竞赛入门经典》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!