习题3-2 分子量 ——《算法竞赛入门经典》

给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C,H,O,N,原子量分别为12.01,1.008,16.00,14.01(单位:g/mol)。例如,C6H5OH的分子量为94.108g/mol。

#include
#include
#define MAX 80
#define C_val 12.01
#define H_val 1.008
#define O_val 16
#define N_val 14.01

int main(){
	char s[MAX];
	gets(s);
	float sum=0;	
	for(int i=0; i='0' && s[i+1]<='9'){
				int t1 = int(s[i+1]-'0');  //int(字符-’0’)=整数
				sum += t1*C_val;
			}
			else
				sum += 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;
			}
			else
				sum += 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;
			}
			else
				sum += 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;
			}
			else
				sum += N_val;
		}
	}
	printf("%.3f\n", sum);
	return 0;
} 

习题3-2 分子量 ——《算法竞赛入门经典》_第1张图片

你可能感兴趣的:(算法,C)