
前言: 前三十题中 在我的印象里非常少的题是没有写直接搜解法 这个好像是第一个 也是前三十的倒数第二题,后面的反转链表实在不会。。。
#include<iostream>
using namespace std;
// +1.23400E-03 0.00123400 -1.2E+10 -12000000000
int main()
{
char arr[10000];
cin >> arr;
// 先把E的下标记录下来
int e = 1;
while (arr[++e] != 'E')
;
int index = 0;
for (int i = e + 2; arr[i] != '\0'; i++)
{
index *= 10;
index += arr[i] - '0';
}
// index 存储的是指数 e存储的是E的下标位置
if (arr[0] == '-')
cout << '-';
if (!index)
{
for (int i = 1; i < e; i++)
{
cout << arr[i];
}
return 0;
}
if (arr[e + 1] == '-')
{
cout << "0.";
while (index - 1)
{
cout << '0';
index--;
}
for (int i = 1; i < e; i++)
{
if (arr[i] != '.')
{
cout << arr[i];
}
}
}
else
{
// +1.23400E-03 0.00123400 -1.2E+10 -12000000000
cout &l

本文讲述了如何处理包含科学计数法的C++输入,通过分析小数点和指数的位置,正确转换并输出格式化的数字。理解了E表示法和不同情况下的0.0xxx规则,使读者掌握处理这类问题的基本算法。
最低0.47元/天 解锁文章
493

被折叠的 条评论
为什么被折叠?



