1 条题解

  • 0
    @ 2026-4-27 18:11:38

    本题其实不算太难,不过需要学到string,即字符串就可以解决问题。 但是,如果只学会string的初步使用方法,而不记一些实用的函数,那么写起代码来也会比较麻烦。

    在介绍本题使用的“string库”中的函数前先讲解本题思路: 通过数字的小数部分的长度来判别数据类型, 那么我们只需利用string获得小数部分,便可求解答案。

    好了,看一下我们要使用的函数:

    // 这是下列函数所需的头文件,它包含了有关string的实用函数
    #include <string> 
    
    
    // 字符串名称.size(),可以得到该字符串的长度
    string str = "I love tuubu!";
    int n = str.size(); // 此时 n = 13
    cout << n << endl; // 输出 13
    
    // 字符串名称.erase(a, b),可以删除一个字符串中从第 a 个下标算起,连续删除 b 个字符
    string str = "I don't love tuubu!";
    str.erase(2, 6); // 从下标为 2 的 'd' 连续删除6个字符,即 "don't "
    cout << str << endl; // 输出 "I love tuubu!"
    
    

    接下来是代码,仅供参考

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        string str;
        cin >> str;
        // 处理 str ,使得只保留小数点后的内容
        while (str[0] != '.' && str.size() > 0) { // 重复执行直到最前字符为小数点
            str.erase(0, 1); // 删除最前字符
        }
        str.erase(0, 1); // 别忘了删除小数点
        // 判断数据类型 + 输出
        if (str.size() < 7) cout << "float";
        else cout << "double";
        
        return 0;
    }
    

    本题解分享到这,如有错误和疑问之处,欢迎指出与探讨。

    • 1

    信息

    ID
    824
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    7
    已通过
    4
    上传者