博客
关于我
Malor Mass(分子量)
阅读量:794 次
发布时间:2023-02-06

本文共 1650 字,大约阅读时间需要 5 分钟。

为了解决这个问题,我们需要计算给定分子式的摩尔质量。分子式由四种元素组成:碳(C)、氢(H)、氧(O)和氮(N),它们的标准原子权重分别为12.01 g/mol、1.008 g/mol、16.00 g/mol和14.01 g/mol。我们需要将这些元素及其数量结合起来,计算总摩尔质量。

方法思路

  • 输入处理:读取输入数据,包括多个测试用例。
  • 遍历字符串:对于每个分子式字符串,遍历每个字符,识别元素及其后续的数字部分。
  • 计算摩尔质量:对于每个识别到的元素,查找其对应的原子权重,并读取其后续的数字部分,计算该元素对总摩尔质量的贡献。
  • 输出结果:将每个测试用例的总摩尔质量结果格式化输出,保留三位小数。
  • 解决代码

    #include 
    #include
    #define maxn 100char s[maxn];double m(char x) { if(x == 'C') return 12.01; if(x == 'H') return 1.008; if(x == 'O') return 16.00; if(x == 'N') return 14.01;}int main() { int t, i; double ans; scanf("%d", &t); while(t--) { scanf("%s", s); ans = 0; int n = strlen(s); for(i = 0; i < n; i++) { if(s[i] > 'A' && s[i] < 'Z') { char current = s[i]; int current_weight = m(current); int j = i + 1; int found_digits = 0; while(j < n && isdigit(s[j])) { found_digits++; j++; } if(found_digits > 0) { int num = 0; for(int k = 0; k < found_digits; k++) { num = num * 10 + (s[i + 1 + k] - '0'); } ans += current_weight * num; } i = j - 1; } else { i++; } } printf("%.3f\n", ans); } return 0;}

    代码解释

  • 函数 m:返回对应元素的原子权重。例如,m('C') 返回 12.01。
  • 主函数 main:读取输入数据,处理每个测试用例。
  • 遍历字符串:逐个字符处理,识别元素及其后续的数字部分。
  • 数字处理:对于每个元素,读取其后续的数字,转换为整数值,计算该元素的摩尔质量贡献。
  • 输出结果:将每个测试用例的结果格式化输出,保留三位小数。
  • 该方法确保了每个元素及其数字部分被正确识别和处理,能够正确计算分子式的摩尔质量,并且避免了越界错误,确保了代码的稳定性和正确性。

    转载地址:http://peufk.baihongyu.com/

    你可能感兴趣的文章
    macOS Big Sur 11.0.1 上未弹出应用程序
    查看>>
    MacOS Docket 安装及核心中间件环境搭建
    查看>>
    MacOS:创建目录出现 Read-only file system
    查看>>
    macOS使用django安装mysqlclient遇到的问题(mysqlclient 1.3.3 or newer is required)
    查看>>
    macOS系统上安装JDK
    查看>>
    MacType Decency 项目常见问题解决方案
    查看>>
    Mac下IDEA更换Maven仓库
    查看>>
    Mac下MySQL 报错:Error1045(28000)解决办法
    查看>>
    Mac下redis安装和启动
    查看>>
    Mac下各种网络命令的使用
    查看>>
    Mac下如何配置环境变量
    查看>>
    Mac下安装jdk
    查看>>
    Mac下安装PEAR
    查看>>
    Mac下安装PIL库
    查看>>
    mac下安装配置nginx
    查看>>
    Mac下忘记MySQL密码可以这样做!
    查看>>
    Mac下配置多个SSH-Key (gitLab)
    查看>>
    mac关闭占用某个端口的进程
    查看>>
    mac删除appstore账号和更新失败的问题
    查看>>
    mac地址随机变化的解决方法(安卓手机通用)不用ROOT
    查看>>