一道20分的水题,也做了好久,唉。
学了个substr函数的用法,这种东西,早该知道的,人太懒了,都不学学。
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
string inpu,shu;
int main(){
cin>>inpu;
int dot=inpu.find('.'),e=inpu.find('E');
shu=inpu.substr(1,dot-1)+inpu.substr(dot+1,e-dot-1);
int i,exp=0;
for(i=e+2;i<inpu.length();i++)
exp=exp*10+(inpu[i]-'0');
if(inpu[e+1]=='-') exp=-exp;
if(exp<0){
string temp;
for(i=1;i<-exp;i++)
temp+='0';
shu=temp+shu;
temp="0.";
shu=temp+shu;
}
else{
if(shu.length()<exp+2){
while(shu.length()<exp+1)
shu+='0';
}
else
shu.insert(shu.begin()+1+exp,'.');
}
if(inpu[0]=='-')
shu.insert(shu.begin(),'-');
cout<<shu<<endl;
return 0;
}