很麻烦,要时刻心中有数据
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
char shuzi[11000];
char zhishushuzu[11000];
int main(){
freopen("1.txt","r",stdin);
string str;
cin>>str;
if(str[0]=='-'){
cout<<"-";
}
str.erase(str.begin());
int lenthofstr=str.length();
int location_of_e;
for(int i=0;i<lenthofstr;i++){
if(str[i]=='E'){
location_of_e=i;
break;
}
}
//cout<<str.c_str();
strcpy(shuzi,str.c_str());
for(int i=location_of_e+1;i<strlen(shuzi);i++){
zhishushuzu[i-location_of_e-1]=shuzi[i];
}
int zhishu;
sscanf(zhishushuzu,"%d",&zhishu);
//cout<<zhishu;
if(zhishu<0){
printf("0.");
int t=abs(zhishu);
for(int i=0;i<t-1;i++){
cout<<"0";
}
for(int i=0;i<location_of_e;i++){
if(shuzi[i]!='.') cout<<shuzi[i];
}
cout<<endl;
}else{
str.erase(str.begin()+1);
int shuzichangdu=location_of_e-1;
int i=0;
//while(1);
//cout<<shuzichangdu<<endl<<zhishu;
for( i=0;i<shuzichangdu&&zhishu>=0;i++){
if (str[i]=='.') continue;
cout<<str[i];
zhishu--;
}
if(i==shuzichangdu&&zhishu==-1) return 0;
if(i<shuzichangdu){
cout<<".";
for (;i<shuzichangdu;i++){
cout<<str[i];
}
}else if(zhishu>=0){
for (int j=0;zhishu>=0;j--){
cout<<"0";
zhishu--;
}
}
cout<<endl;
}
return 0;
}