博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
紫书 习题3-2 分子量(字符串,常量数组)
阅读量:7071 次
发布时间:2019-06-28

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

#include
#include
int main(){ int t,i,num; char a[]={'C','H','O','N'}; double n[]={12.01,1.008,16.00,14.01};//此所谓之常量数组的妙用 char s[105]; double sum; scanf("%d",&t); while(t--) { sum=0;//每次多组数据输入时sum复位 scanf("%s",s); for(i=0;i
='0'&&s[i+1]<='9')//字符后面带数字 { if(s[i+2]>='0'&&s[i+2]<='9')//带了两位数字 { num=10*(s[i+1]-'0')+(s[i+2]-'0'); } else//带了一位数字 num=s[i+1]-'0'; } else//不带数字 num=1; if(s[i]==a[0]) sum += num*n[0]; else if(s[i]==a[1]) sum += num*n[1]; else if(s[i]==a[2]) sum += num*n[2]; else if(s[i]==a[3]) sum += num*n[3]; } printf("%.3f\n",sum); } return 0;}

  

#include 
#include
int main(){ double d[200]; int n,sum,i; double w; char c,a[1000]; d['C']=12.01; d['H']=1.008; d['O']=16.00; d['N']=14.01; //常量数组的妙用 scanf("%d",&n); while(n--) { i=0; w=0; scanf("%s",a); while(a[i]!='\0') { sum=0; c=a[i]; i++; while(a[i]>='0' && a[i]<='9') //判断字符后面有多少数字的 { sum=sum*10+a[i]-'0'; //sum为数字大小/包括数字占后面1,2,3···位的 i++; //往后遍历是否有数字 } if(sum) //若字符后面有数字,分子量=分子数*单位原子质量 w+=sum*(d[c]); else //若字符后面无数字 w+=(d[c]); } printf("%.3f\n",w); } return 0;}/*解题思路:1.将分子量用double 数组记录下来2.将字符串存储在字符数组中,从头向后扫描,一直记住“字母”,对下一个字符进行判断,是否是数字,如果是数字:用一个整数记录,本代码中用的sum,同时下标++。  进行判断,查看是否对数字进行了记录,即查看sum是否进入了while循环并被赋值,如果没有被赋值,说明下一个字符不是数字,直接对W(总记录)值进行赋值,为当前字符的权值(分子量),即double数组的中的值。如果被赋值,说明字符后面是一个数字,sum中存放了该“数字”,也是对w赋值,不过此时是赋sum倍的当前字符的权值(分子量)。3.最后整个字符串循环完毕,输出总记录W即可。*/

  

转载于:https://www.cnblogs.com/Roni-i/p/7198143.html

你可能感兴趣的文章
javaOOM该分析dump文件而不是看异常log日志原因
查看>>
vue组件值传递之父组件向子组件传递(props)
查看>>
MySQL5.6 主从复制 ERROR 1776 (HY000): Parameters MASTER_LOG_FILE
查看>>
mysql重启,重启释放ibtmp1
查看>>
我是一个线程(修订版) 转
查看>>
numpy二分查找
查看>>
DevExpress第三方控件使用实例之ASPxPopupControl弹出子窗体
查看>>
【视频】ASP.NET Core MVC 2.* 入门
查看>>
Go基础系列:接口类型断言和type-switch
查看>>
Presentational and Container Components
查看>>
windows系统-phpstudy升级mysql8.0.12安装教程及修改密码和安装注意事项
查看>>
Android 性能优化的方面方面都在这儿
查看>>
clover无缘无故隐藏书签栏原因
查看>>
Spark 用户自定义函数 Java 示例
查看>>
RabbitMQ 发布订阅
查看>>
Python&R&量化 金融之路
查看>>
有关java中static关键的重写问题
查看>>
Tortoise SVN 创建分支与合并
查看>>
Delphi 发送按键
查看>>
Python - 默认参数的一次性求值
查看>>