当前位置:   article > 正文

C语言练习:计算BMI其中的scanf小细节_使用scanf函数输入一个人的身高(厘米)和体重(千克); (2)计算bmi值; (3)输出bmi值

使用scanf函数输入一个人的身高(厘米)和体重(千克); (2)计算bmi值; (3)输出bmi值

在C语言中初学者的练习中对于scanf有些细节没能注意到,比如在计算BMI小练习中我就遇到了因为scanf小细节而输出失败的问题,话不多说看代码。

  1. #include <stdio.h>
  2. /*输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数。
  3. 例如:一個52公斤的人,身高是155cm,则BMI为 :
  4. 52(kg)/1.55^2(m)= 21.6(**)
  5. BMI指数:
  6. 低于18.5:过轻
  7. 18.5-25:正常
  8. 25-28:过重
  9. 28-32:肥胖
  10. 高于32:严重肥胖*/
  11. int main(int argc, char *argv[]) {
  12. //1.定义两个变量用来存放身高和体重,一个变量存放BMI
  13. float height, weight, BMI;
  14. //2.输入身高,体重
  15. printf("请输入身高\n");
  16. scanf("%.2f", &height);
  17. printf("请输入体重\n");
  18. scanf("%.2f", &weight);
  19. //3.计算BMI的值
  20. BMI=weight/(height*height);
  21. //4.用if语句来判断BMI属于哪个档次并输出相应身体状况
  22. if (BMI>32){
  23. printf("严重肥胖!");
  24. } else if (BMI>28){
  25. printf("肥胖!");
  26. } else if (BMI>25){
  27. printf("过重!");
  28. } else if (BMI>18.5){
  29. printf("正常");
  30. } else{
  31. printf("过轻!");
  32. }
  33. return 0;
  34. }

 

 

在第二步的时候使用scanf的时候我想把输出的数据显示小数点后两位,所以在这里加入了.2,这就是概念混淆的问题。实际上想要确定输出的数据显示小数点后两位只需要在printf中加入.2就行了。正确代码如下所示:

  1. #include <stdio.h>
  2. /*输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数。
  3. 例如:一個52公斤的人,身高是155cm,则BMI为 :
  4. 52(kg)/1.55^2(m)= 21.6(**)
  5. BMI指数:
  6. 低于18.5:过轻
  7. 18.5-25:正常
  8. 25-28:过重
  9. 28-32:肥胖
  10. 高于32:严重肥胖*/
  11. int main(int argc, char *argv[]) {
  12. //1.定义两个变量用来存放身高和体重,一个变量存放BMI
  13. float height, weight, BMI;
  14. //2.输入身高,体重
  15. printf("请输入身高\n");
  16. scanf("%f", &height);
  17. printf("请输入体重\n");
  18. scanf("%f", &weight);
  19. //3.计算BMI的值
  20. BMI=weight/(height*height);
  21. //4.用if语句来判断BMI属于哪个档次并输出相应身体状况
  22. if (BMI>32){
  23. printf("严重肥胖!");
  24. } else if (BMI>28){
  25. printf("肥胖!");
  26. } else if (BMI>25){
  27. printf("过重!");
  28. } else if (BMI>18.5){
  29. printf("正常");
  30. } else{
  31. printf("过轻!");
  32. }
  33. return 0;
  34. }

C语言小白亲身经历,C语言的输入输出方式跟Java还是有些不一样的,所以不管写什么代码的时候都要万分注意小细节^_^。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/389731
推荐阅读
相关标签
  

闽ICP备14008679号