1.思路
小数=整数部分+小数部分 而这两个部分可以用快读int的方法来完成(第二个要改亿改) 如果没有小数点 就直接返回整数部分 如果有小数点 组合到一起并返回就行了 要注意 负小数=整数部分-小数部分 所以要再加一个判断是否是负数
2.代码
double readD()
{
int zh
= 0;
int w
= 1;
bool flag
= false;
double xi
= 0.0;
double x
= 1.0;
char ch
= getchar();
while (ch
< '0' || ch
> '9')
{
if (ch
== '-') w
= -1;
ch
= getchar();
}
while (ch
>= '0' && ch
<= '9')
{
zh
= zh
* 10 + ch
- '0';
ch
= getchar();
}
while (ch
< '0' || ch
> '9')
{
if (ch
== '.') flag
= true;
ch
= getchar();
}
if (!flag
) return zh
;
while (ch
>= '0' && ch
<= '9')
{
x
*= 10;
xi
= xi
+ (ch
- '0') / x
;
ch
= getchar();
}
if (w
== 1) return zh
+ xi
;
else return zh
- xi
;
}
3.结语
大家理解即可qwq 既然都看到这了,不三连一个在走吗