花了半个小时,强行拗出一长串又臭又长的代码,把所有情况都分了(该分的,不该分的……都分了……)

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<cmath>
  4. #define MAX 120
  5. char num[MAX],d[MAX],b_[],b;
  6. int main()
  7. {
  8. int t;
  9. scanf("%d",&t);
  10. while(t--)
  11. {
  12. scanf("%s",num);
  13. if(num[]=='')
  14. {
  15. int i,cnt;
  16. for(i=,cnt=;;i++,cnt++)
  17. {
  18. if(num[i]=='e') break;
  19. d[cnt]=num[i];
  20. }
  21. d[cnt]='\0';
  22. i++;
  23. for(cnt=;num[i];i++,cnt++) b_[cnt]=num[i];
  24. b_[cnt]='\0';
  25. int len_b=strlen(b_);
  26. b=;
  27. for(i=;i<len_b;i++) b+=(b_[i]-'')*(int)pow(,(len_b--i));
  28. int len_d=strlen(d);
  29. if(len_d== && d[]=='')//这个数是0
  30. {
  31. printf("0\n");
  32. }
  33. else if(b<len_d)//不需要添加后缀0,需要移动小数点,并去掉前缀0
  34. {
  35. int d_0=;
  36. for(i=;i<len_d;i++)
  37. {
  38. if(d[i]!='') break;
  39. if(d[i]=='') d_0++;
  40. }//前缀0个数
  41. if(b<=d_0)//b <= d的前缀0个数,n<1
  42. {
  43. printf("0.");
  44. for(i=b;i<len_d;i++) printf("%c",d[i]);
  45. printf("\n");
  46. }
  47. else//b > d的前缀0个数,n>=1
  48. {
  49. for(i=d_0;i<b;i++) printf("%c",d[i]);
  50. printf(".");
  51. for(;i<len_d;i++) printf("%c",d[i]);
  52. printf("\n");
  53. }
  54. }
  55. else if(b==len_d)//直接去掉小数点,并去掉前缀0
  56. {
  57. for(i=;i<len_d;i++) if(d[i]!='') break;
  58. for(;i<len_d;i++) printf("%c",d[i]);
  59. printf("\n");
  60. }
  61. else//需要添加后缀0,并且去掉前缀0
  62. {
  63. for(i=;i<len_d;i++) if(d[i]!='') break;
  64. for(;i<len_d;i++) printf("%c",d[i]);
  65. for(i=;i<=b-len_d;i++) printf("");
  66. printf("\n");
  67. }
  68. }
  69. else
  70. {
  71. int i,cnt;
  72. for(i=,cnt=;;i++,cnt++)
  73. {
  74. if(num[i]=='e') break;
  75. d[cnt]=num[i];
  76. }
  77. d[cnt]='\0';
  78. i++;
  79. for(cnt=;num[i];i++,cnt++) b_[cnt]=num[i];
  80. b_[cnt]='\0';
  81. int len_b=strlen(b_);
  82. b=;
  83. for(i=;i<len_b;i++) b+=(b_[i]-'')*(int)pow(,(len_b--i));
  84. int len_d=strlen(d);
  85. if(b<len_d)//不需要添加0,需要移动小数点
  86. {
  87. printf("%c",num[]);
  88. for(i=;i<b;i++) printf("%c",d[i]);
  89. printf(".");
  90. for(;i<len_d;i++) printf("%c",d[i]);
  91. printf("\n");
  92. }
  93. else if(b==len_d)//直接去掉小数点
  94. {
  95. printf("%c",num[]);
  96. for(i=;i<len_d;i++) printf("%c",d[i]);
  97. printf("\n");
  98. }
  99. else//需要添加后缀0
  100. {
  101. printf("%c",num[]);
  102. for(i=;i<len_d;i++) printf("%c",d[i]);
  103. for(i=;i<=b-len_d;i++) printf("");
  104. printf("\n");
  105. }
  106. }
  107. }
  108. }

JNUOJ 1184 - 科学计数法的更多相关文章

  1. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法

    保存在csv中的 013812345678,前面的0会被去掉,后面是科学计数法显示.保存成 col1,="013812345678" 即可. 注意,分隔符逗号后面直接接“=”等号. ...

  2. 【转】js 中导出excel 较长数字串会变为科学计数法

    [转]js 中导出excel 较长数字串会变成科学计数法 在做项目中,碰到如题的问题.比如要将居民的信息导出到excel中,居民的身份证号码因为长度过长(大于10位),excel会自动的将过长的数字串 ...

  3. C# 科学计数法转换成数字

    /// <summary> /// 判断输入的数是否是科学计数法.如果是的话,就会将其换算成整数并且返回,否则就返回false. /// </summary> /// < ...

  4. C# 中科学计数法转成正常值

    抓取数据的时候碰到科学技术法,查了一些资料,直接贴代码 /// <summary> /// 数字科学计数法处理 /// </summary> /// <param nam ...

  5. PAT 1024. 科学计数法 (20)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...

  6. PHP 如何显示大数字,防止显示为 科学计数法 形式

    PHP 数字超过一定长度时,会自动转换为 科学计数法 的形式,如 1.2345678912346E+16: 如何 避免转换,让它原样展示呢? 不过,可以用PHP函数 number_format() 来 ...

  7. 关于解决读取导入excel某列数字过长的科学计数法格式

    因为 客户 需要导入 虚拟商品的卡号 excel已经是文本形式的单元格格式了 但是 到后台 java代码去获取的时候 仍然是 科学计数法格式 先找到以下资料做参考:http://love-66521. ...

  8. PAT乙级 1024. 科学计数法 (20)

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

  9. POI取消科学计数法

    前台输入手机号13777777777,如果是为Double类型接收,就会自动转为科学计数法 找了下,一般是Double转String,方法一般有两种: 1.利用String.format() sale ...

随机推荐

  1. Java使用选择排序法对数组排序

    编写程序,实现将输入的字符串转换为一维数组,并使用选择排序法对数组进行排序. 思路如下: 点击"生成随机数"按钮,创建Random随机数对象: 使用JTextArea的setTex ...

  2. x264编码的图像出现乱码的问题

    将YUV进行x264编码的时候,建议将 i_threads 参数设置成 X264_SYNC_LOOKAHEAD_AUTO//* 取空缓冲区继续使用不死锁的保证. 否则有可能编码出来的数据会出现IDR_ ...

  3. mybatis 之 resultType="Map" parameterType="String"

    <select id="getAllGoodsForSouJiaYi" resultType="Map" parameterType="Stri ...

  4. Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:25:5-27:41 to override.

    记录下来少走些坑吧 一:不管用 tools:replace="android:icon,android:theme" xmlns:tools="http://schema ...

  5. React Native(十三)——ios键盘挡住textInput

    渐入佳境 用React Native重构的项目也快接近尾声,剩下的就是适配ios的功能了.慢慢地也从中琢磨出了一点门道,于是就遇见了键盘遮挡textInput问题斑斑: 正常页面: android点击 ...

  6. 【angularjs基础】ng-repeat嵌套循环报错angular.min.js:89 Error: [ngRepeat:dupes]

    再写嵌套循环的时候,提示一个错误 angular.min.js: Error: [ngRepeat:dupes] 代码如下 <table class="GridViewTable mt ...

  7. linux Tar 命令参数详解

    tar命令 . 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. . 格式 tar [主选项+辅选项] 文件或目录 eg: tar z ...

  8. scanf printf sprintf fprintf

    都是C语言中的函数,但C++保留了这些函数,在头文件iostream中声明了. 1 scanf(格式控制,输出列表) printf (格式控制,输出列表) 举例: #include <iostr ...

  9. 告知你不为人知的UDP-疑难杂症和使用

    版权声明:本文由黄日成原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/848077001486437077 来源:腾云阁 h ...

  10. [转]13 Hours: The Secret Soldiers of Benghazi

    转:http://www.imfdb.org/wiki/13_Hours:_The_Secret_Soldiers_of_Benghazi The following weapons were use ...