题意:给出科学计数法的格式的数字A,要求输出普通数字表示法,所有有效位都被保留,包括末尾的0。

分两种情况,一种E+,一种E-。具体情况具体分析╮(╯_╰)╭

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <string.h>
  5. #include <cmath>
  6. #define POSITIVE 1
  7. #define NEGATIVE 2
  8. using namespace std;
  9. /*
  10. 将科学计数法表示的数转换成传统的形式输出
  11. */
  12. const int maxn=;
  13. char str[maxn];
  14. char expval[maxn];
  15.  
  16. void printNum(char *num,int idxE,int fraclen,int e,int mark){
  17. //指数为正
  18. if(mark==POSITIVE){
  19. bool flag=false;
  20. if(num[]!=''){
  21. flag=true;
  22. printf("%c",num[]);
  23. }
  24. num+=;
  25. int minlen=min(fraclen,e);
  26. for(int i=;i<minlen;i++){
  27. //前面的0直接忽略
  28. if(num[i]!=''){
  29. flag=true;
  30. }
  31. if(flag){
  32. printf("%c",num[i]);
  33. }
  34. }
  35. if(e>=fraclen){
  36. for(int i=;i<e-fraclen;i++)
  37. printf("");
  38. }
  39. else{
  40. printf(".");
  41. for(int i=;i<fraclen-e;i++)
  42. printf("%c",num[minlen+i]);
  43. }
  44. }
  45. //指数为负
  46. else{
  47. printf("0.");
  48. for(int i=;i<e-;i++){
  49. printf("");
  50. }
  51. for(int i=;num[i]!='E';i++){
  52. if(num[i]!='.')
  53. printf("%c",num[i]);
  54. }
  55. }
  56. }
  57. int main()
  58. {
  59. scanf("%s",str);
  60. int len=strlen(str);
  61. int idxE=;
  62. int fracLen;
  63. for(int i=;i<len;i++){
  64. if(str[i]=='E'){
  65. idxE=i; //E的索引
  66. break;
  67. }
  68. }
  69. fracLen=idxE-;//小数部分长度
  70. int explen=;
  71. for(int i=idxE+;i<len;i++){
  72. expval[explen++]=str[i];
  73. }
  74. expval[explen]='\0';
  75. int e=atoi(expval);
  76. if(str[idxE+]=='+'){
  77. if(str[]=='-')
  78. printf("-");
  79. printNum(str+,idxE,fracLen,e,POSITIVE);
  80.  
  81. }
  82. else{
  83. if(str[]=='-')
  84. printf("-");
  85. printNum(str+,idxE,fracLen,e,NEGATIVE);
  86. }
  87. return ;
  88. }

PAT甲题题解-1073. Scientific Notation (20)-字符串处理的更多相关文章

  1. PAT甲题题解-1108. Finding Average (20)-字符串处理

    求给出数的平均数,当然有些是不符合格式的,要输出该数不是合法的. 这里我写了函数来判断是否符合题目要求的数字,有点麻烦. #include <iostream> #include < ...

  2. PAT甲题题解-1041. Be Unique (20)-水题

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789189.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  3. PAT甲题题解-1050. String Subtraction (20)-水题

    #include <iostream> #include <cstdio> #include <string.h> #include <algorithm&g ...

  4. PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算

    输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验 ...

  5. PAT甲题题解-1096. Consecutive Factors(20)-(枚举)

    题意:一个正整数n可以分解成一系列因子的乘积,其中会存在连续的因子相乘,如630=3*5*6*7,5*6*7即为连续的因子.给定n,让你求最大的连续因子个数,并且输出其中最小的连续序列. 比如一个数可 ...

  6. PAT甲题题解-1120. Friend Numbers (20)-水题

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789775.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  7. PAT甲题题解-1015. Reversible Primes (20)-素数

    先判断n是否为素数然后把n转化成d进制下再反转,转化为十进制的num判断num是否为素数 注意n为0和1时,不是素数!!!注意反转后的num也有可能为1,不是素数!!! #include <io ...

  8. PAT甲题题解-1042. Shuffling Machine (20)-模拟

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789205.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  9. PAT甲题题解-1046. Shortest Distance (20)-做了一个假的最短路,水

    一开始以为是最短路,结果是给你一个环,让你求环上两点之间的距离...那还做毛线 然而还是得做毛线 #include <iostream> #include <cstdio> # ...

随机推荐

  1. MySQL基础之 外键参照讲解

    外键: 定义:如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 作用:外键是用来实现参照完整性的,不同的外键约束方式将可以是两张表紧密的结合起来.比如修改或者删除 ...

  2. unbuntu 安装python包提示E: Unable to locate package python-timeout

    今天本想着在unbuntu环境下安装python的一个包,安装了几次都提示 E: Unable to locate package python-timeout 查阅了一些信息才知道,原来是一些软件源 ...

  3. 乘风破浪:LeetCode真题_029_Divide Two Integers

    乘风破浪:LeetCode真题_029_Divide Two Integers 一.前言     两个整数相除,不能使用乘法除法和取余运算.那么就只能想想移位运算和加减法运算了. 二.Divide T ...

  4. [ML学习笔记] XGBoost算法

    [ML学习笔记] XGBoost算法 回归树 决策树可用于分类和回归,分类的结果是离散值(类别),回归的结果是连续值(数值),但本质都是特征(feature)到结果/标签(label)之间的映射. 这 ...

  5. Alpha冲刺报告(9/12)(麻瓜制造者)

    今日已完成 邓弘立: 正在进行主页逻辑的编写 符天愉: 部署商品发布和物品需求的接口 江郑: 尝试完善接口文档,进行进一步测试 刘双玉: 编写接口说明 肖小强: 进行逻辑模块的编写 李佳铭: 修改了U ...

  6. table中怎么设置两行间距

    table中设置两行间距方法: css代码实现 <style> table   {   border-collapse:   separate;   border-spacing:   1 ...

  7. zabbix 客户端添加自定义参数

    0.zabbix客户端配置文件 server和serveractive都需要配置 1.配置自定义参数脚本文件 zabbix_agent.conf中UserParameter字段,可以配置多行 User ...

  8. PAT A1007 Maximum Subsequence Sum (25 分)——最大子列和,动态规划

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  9. python3 Beautifulsoup <class 'bs4.element.ResultSet'> <class 'bs4.element.Tag'> 取值

    1.<class 'bs4.element.ResultSet'>  这里是字典外套了一个列表  textPid = pid[0] 2.<class 'bs4.element.Tag ...

  10. Scala--操作符

    一.标识符 二.中置操作符 中置表达式,操作符位于两个参数之间 1 to 10 1.to(10) 1 -> 10 1.->(10) 三.一元操作符 a.标识符() 1 toString 1 ...