虽然AC了,但是我写完了自己却完全看不懂!!!!!!!!!!!
# include <iostream>
# include <cmath>
using namespace std;
string str;
string num;
int main()
{
cin >> str;
int i;
// 将数字部分单独存储起来
for(i=0;i<str.size() && str[i] != 'E';++i){
if(str[i] >= '0' && str[i] <= '9'){
num += str[i];
}
}
// move是E后面的指数
int move = stoi(str.substr(i+1));
if(move < 0){
if(str[0] == '-')
cout << '-';
cout << "0.";
for(int i=0;i<(-move)-1;i++)
cout << 0;
cout << num;
}
else{
if(str[0] == '-')
cout << '-';
cout << num[0]; // 例子中好像没有0.123E+3这种0.的例子
if(num.size()-1 <= move){
cout << num.substr(1);
for(int i=0;i<move-num.size()+1;++i){
cout << 0;
}
}
else{
cout << num.substr(1,move);
cout << '.';
cout << num.substr(move+1);
}
}
return 0;
}