思路

1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码

2.ac思路:首先取指数的绝对值,通过stoi函数可以将字符串数字直接转换成数字,然后再通过判断指数的正负,从而边判断边输出,十分简洁。

收获

1.输出可以随着判断进行,而不用全存入后,再输出

2.while里忽略的两个知识点,分别写在了代码注释里,注意:当while判断条件中出现循环体中的变量时,避免使用“++”,“--”等运算符在判断条件汇总

代码

#include<iostream>
#include<algorithm>
#include<cstring> using namespace std;
#define rep(i,a,n) for(int i =a;i <= n; i++)
int main(){
string s;cin>>s; int i = s.find('E'); if(s[0] == '-') cout <<"-";//输出符号 string p = s.substr(i + 2);//找到指数
int zh = stoi(p); //可以包含正负号,这里取的绝对值
// rep(i,0,(int)p.size()-1) zh = zh * 10 + (p[i] -'0');
if(s[i+1] == '+'){//指数是正的
cout << s[1];//先输出第一个
int j = 3;//输出指数让小数点移动的位数
while(j < i && zh > 0 ){
cout << s[j];
j++;zh--;
}
while(zh-- > 0)cout<<'0';
if(j < i){//前面数字没有输出完
cout<<'.';
while(j<i){//此处不可以写成j++ < i !!!会吞掉一位
if(s[j]!='.')
cout<<s[j++];
}
puts("");
}
}else{//如果指数小于0的话
zh--;
cout <<"0.";
while(zh--)cout<<'0';
rep(j,1,i - 1){
if(s[j]!='.')cout<<s[j];
}
puts("");
}
return 0;
}

最新文章

  1. mybatis常见易出错
  2. iOS三种正则表达式
  3. Jenkins+Maven+SVN快速搭建持续集成环境
  4. .NET使用Com组件的一点点教训笔记~
  5. Json在前台与后台之间的使用
  6. Java集合框架(二)
  7. js:jquery multiSelect 多选下拉框实例
  8. angularjs-xeditable整合typeahead完成智能提示
  9. HDU 2717(* bfs)
  10. WSS Process On Causal LTI System
  11. json数据转为Map集合
  12. 去掉UITabBar和NavigationBar上的黑线
  13. apache自带压力测试工具ab的使用及解析
  14. mysql问题处理积累
  15. 省赛在即!最大流问题回顾学习!!DInic
  16. selenium page object模式
  17. 构造函数constructor 与析构函数destructor(四)
  18. modelsim仿真中遇到的问题
  19. Hacknet 玩后感
  20. java初级易错问题总结

热门文章

  1. hive常用函数 wordCount--Hive窗口函数1.1.1 聚合开窗函数聚合开窗函数实战
  2. 移动web开发02
  3. Odoo4 tree视图左上角新增Button
  4. Python 懂车帝综合口碑数据
  5. MultiSpehere类定义
  6. java-多态、内部类
  7. 痞子衡嵌入式:浅析IAR下调试信息输出机制之硬件UART外设
  8. C++11实现的数据库连接池
  9. WPF开发快速入门【7】WPF的拖放功能(Drag and Drop)
  10. 造数字(数位DP)