


题目大意:给出一种物质的分子式(不带括号),求分子量。只包换4种原子,C,H,O,N,原子量分别为12.01,1.008,16.00,14.01。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
double d[200] ;//保存原子量
d['C'] = 12.01;//初始化原子量
d['H'] = 1.008;//初始化原子量
d['O'] = 16.00;//初始化原子量
d['N'] = 14.01;//初始化原子量
char s[100];//保存输入数据
int k;
scanf("%d",&k);
while(k-->0){
scanf("%s",s);
double sum = 0.0;//分子量
for(int i=0;i<strlen(s);i++){
char c = s[i];
int t = 1,times=0; //t保存数字 times保存数字位数
while(i+1 != strlen(s) && !isalpha(s[i+1])){//如果第i+1位是数字
t = t*(times*10)+(s[i+1]-48);
i++;
times++;
}
sum+= d[c]*t;
}
printf("%.3f\n",sum);
}
return 0;
}
本文介绍了一段C语言程序代码,该程序用于计算由C、H、O、N四种原子组成的分子式的分子量。通过读取输入的分子式字符串,并解析其中的原子及其数量,程序能够准确计算并输出相应的分子量。
309

被折叠的 条评论
为什么被折叠?



