洛谷上的一道ti木,实在不知道怎么保留六位有效数字和去掉末尾的0

img

img


洛谷上的一道ti木,实在不知道怎么保留六位有效数字和去掉末尾的0了

通过查看参考链接,发现使用%.6g来打印bmi的值即可,%.6g会去除小数部分尾部的0,同时保持6位有效数字。修改如下:
参考链接:
洛谷 P5714 【深基3.例7】肥胖问题:保留六位有效数字_小废物~的博客-CSDN博客
在C中,%g和%f的区别是什么? - 问答 - 腾讯云开发者社区-腾讯云

#include <stdio.h>

int main(void){
    
    float m,h,bmi;
    
    scanf("%f %f",&m,&h);
    bmi = m/(h*h);
    
//    bmi=9198.10f;
    if(bmi<18.5) {
        printf("Underweight");
    }
    
    if(bmi>=18.5&&bmi<24){
        printf("Normal");
    }
    
    if(bmi>=24){
            
        
        printf("%.6g\n",bmi);
        printf("Overweight");
    }
    
    return 0;
} 


img

用%g的转换格式,前面加上.数字表示它的最大有效位数。以下是具体语句:

printf("%.6g\n",bmi);