寫這個題的時候頭昏腦脹,思路很不清晰,寫的代碼很復(fù)雜,效果還不好,參考了下面的程序。整個思路比較不錯,分享一下。
鏈接如下: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;}
新聞熱點
疑難解答