double快读(算是int快读的扩展吧)

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
既然都看到这了,不三连一个在走吗

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值