分子量

        给出一个物质的分子式(不带括号),求分质量。分子式包含4种原子,分别为C,H,O,N.原子量分别为12.01,、1.008、16.00、14.01。(单位:g/mol),这个计算分子量的算法就是之前我改编的进制转换的算法(所以学习有时候也需要脑洞的偷笑,当然大佬请无视委屈)。以下是AC代码:

#include <stdio.h>

#include <string.h>
int main() 
{
int testcase;
char s[1024];
double gmol[128];
gmol['C'] = 12.01;
gmol['H'] = 1.008;
gmol['O'] = 16.00;
gmol['N'] = 14.01;
scanf("%d", &testcase);
while (testcase--) 
{
scanf("%s", s);
double ret = 0;
int n = strlen(s);
for (int i = 0; i < n; )
{
int ele = s[i], num = 0;//字符与整型可以直接赋值?ele是字符的ascll值,s[i]是字符或者对应的ascll值
i++;
while (s[i] >= '0' && s[i] <= '9')
num = num * 10 + s[i] - '0', i++;//在竞赛入门书中的P84有2进制换十进制的算法,与此类似!十进制乘10,2进制乘二!
if (num == 0)
num = 1;
ret += gmol[ele] * num;//gmol[72]=gmol['H']

}
printf("%.3lf\n", ret);
}
return 0;

}

另外多个文件的值传递问题我还没搞清楚,一个文件里是原函数,另一个是主程序,还有一个头文件。那他们之间怎么传递和调用呢?以前做毕设是用到的stm32的程序里就是这个形式,可惜不明白。留待以后解决吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值