1 solutions

  • 1
    @ 2025-10-28 21:18:56
    这道题需要使用“浮点数”(即小数)。在 C++ 中,有以下三种数据类型来存储浮点数:
    数据类型 占用字节数 最大有效数字数 scanf 或 printf 格式串
    float 4 6 %f
    double 8 15 %lf
    long double 16 18 %Lf
    OI 中一般倾向于使用 double。
    cout 在输出浮点数时,默认输出 6 位有效数字,可以直接通过本题。但如果需要设置输出 x 位有效数字的话,可以先向 cout 中插入 setprecision(x)。例如,cout << setprecision(4) << 12.3456; 将会输出 12.34。
    对于 printf,使用 printf("%.xg"); 可以控制输出有效数字位数。例如,printf("%.4g",12.3456); 将会输出 12.34。

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    double m,h,b;
    int main()
    {
        scanf("%lf%lf",&m,&h);
        b=m/h/h;
        if(b<18.5) printf("Underweight");
        else if(b>=18.5&&b<24)printf("Normal");
        else printf("%.6g\nOverweight",b);
        return 0;
    }
    
    
    
    • 1

    Information

    ID
    522
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    (None)
    # Submissions
    5
    Accepted
    4
    Uploaded By