博客
关于我
Malor Mass(分子量)
阅读量:796 次
发布时间: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/

    你可能感兴趣的文章
    modbus rtu通信中数据类型 (ABCD, BADC, CDAB, DCBA)分别代表什么意思
    查看>>
    MODBUS 线圈、输入线圈、输入寄存器、保持输出寄存器的存储规范标识与功能码
    查看>>
    Modbus中的线圈和寄存器(两种重要的数据类型)
    查看>>
    my19_mysql 多线程备份恢复工具mydumper
    查看>>
    Model-Based Reinforcement Learning(基于模型的强化学习)详解-ChatGPT4o作答
    查看>>
    Model-Free Reinforcement Learning(无模型强化学习)详解-ChatGPT4o作答
    查看>>
    My opinion on Python.
    查看>>
    models.__dict__[args.arch] 实例复现
    查看>>
    ModelScope魔搭社区新用户如何免费体验36小时GPU服务器
    查看>>
    ModeNotFoundError:没有名为(*)的模块
    查看>>
    modprobe
    查看>>
    ModStart 是一个基于 Laravel 模块化极速开发网站框架
    查看>>
    Modular RAG:向“平台”级演进
    查看>>
    module 'queue' has no attribute 'Queue'解决
    查看>>
    module 'requests' has no attribute 'get' python
    查看>>
    Module Federation在vue3中使用vue2的组件
    查看>>
    Module Zero之语言管理
    查看>>
    module ‘@babel/runtime/helpers/interopRequireDefault.js‘ is not defined报错解决方法
    查看>>
    ModuleNotFoundError: No module named ‘setuptools_rust‘
    查看>>
    ModuleNotFoundError: No module named ‘webdriver_manager‘ 错误即使在安装 webdrivermanager 之后
    查看>>