这次写的有点乱= =
#include <stdio.h>
#include <math.h>
int main()
{
char Num[10000];
int i, end= 0,exp=0,zero,dot;
scanf("%s", Num);
while (Num[end] != '\0')
end++;
end--; i = end;
while (Num[i-1]!= 'E') {
exp +=( Num[i]-'0') * pow(10, end - i);
i--;
}
if(Num[0]=='-')
printf("%c", Num[0]);
if (Num[i] == '-') {
for (i = 0; Num[i] != '.'; i++);
zero = exp - i + 1;
printf("0.");
while (zero-- > 0)
printf("0");
for (i = 1; Num[i] != 'E'; i++)
if (Num[i] != '.')
printf("%c", Num[i]);
}
if (Num[i] == '+') {
/*小数点后有i-4位*/
zero = exp - i + 4;
if (zero >= 0) {
for (i = 1; Num[i] != 'E'; i++)
if (Num[i] != '.')
printf("%c", Num[i]);
while (zero-- > 0)
printf("0");
}
else {
for (i = 1; Num[i] != 'E'; i++) {
if (Num[i] != '.')
printf("%c", Num[i]);
if (i - 2 == exp) printf(".");
}
}
}
return 0;
}