#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
char str[10010];
gets_s(str);
int len = strlen(str);
if (str[0] == '-')
printf("-");
int pos = 0;
while(str[pos] != 'E')
{
pos++;
}
int exp = 0;//exp存放指数(先不考虑正负);
for (int i = pos + 2; i < len; i++)
{
exp = exp * 10 + (str[i] - '0');//算出要移的位数;
}
if (exp == 0)//特判指数为0的情况;
{
for (int i = 1; i < pos; i++)
{
printf("%c", str[i]);
}
}
if (str[pos + 1] == '-')//指数为负
{
printf("0.");
for (int i = 0; i < exp - 1; i++)
printf("0");
printf("%c", str[1]);
for (int i = 3; i < pos; i++)
printf("%c", str[i]);
}
else//指数为正
{
for (int i = 1; i < pos; i++)
{
if (str[i] == '.')
continue;
printf("%c", str[i]);
//小数点后的数大于要移的位数,有小数点;小于等于则没有;
if (i = exp + 2 && pos - 3 != exp)//排除等于;就剩小于了
{
printf(".");
}
}
for (int i = 0; i < exp - (pos - 3); i++)//大于
{
printf("0");
}
}
return 0;
}
B1024 续
最新推荐文章于 2021-10-23 21:41:19 发布