写这个题的时候头昏脑胀,思路很不清晰,写的代码很复杂,效果还不好,参考了下面的程序。整个思路比较不错,分享一下。
链接如下:http://www.ithao123.cn/content-10177836.html
#include <iostream>#include <string>#include <sstream>using namespace std;int main(){ string s; cin>>s; int index; index = s.find('E'); string num = s.substr(1,index-1); string e = s.substr(index+1); int exp; stringstream ss; ss<<e; ss>>exp; if( exp>= 0) { if(s[0] == '-') cout << '-'; ++exp; bool flag = true; for(int i=0;i<num.length();++i) { if( num[i] == '0' && flag) { --exp; } else if(num[i] != '.') { flag = false; cout<<num[i]; --exp; } if (exp == 0 && i != num.length()-1) cout<<'.'; } while(exp >= 0 && exp--) { cout<<'0'; } } else { if(s[0] == '-') cout<<'-'; cout << "0."; ++exp; while(exp++) { cout<<'0'; } for(int i=0;i<num.length();++i) { if(num[i] != '.') cout<<num[i]; } } return 0;}
新闻热点
疑难解答