赞
踩
在C语言中初学者的练习中对于scanf有些细节没能注意到,比如在计算BMI小练习中我就遇到了因为scanf小细节而输出失败的问题,话不多说看代码。
- #include <stdio.h>
-
- /*输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数。
- 例如:一個52公斤的人,身高是155cm,则BMI为 :
- 52(kg)/1.55^2(m)= 21.6(**)
- BMI指数:
- 低于18.5:过轻
- 18.5-25:正常
- 25-28:过重
- 28-32:肥胖
- 高于32:严重肥胖*/
- int main(int argc, char *argv[]) {
- //1.定义两个变量用来存放身高和体重,一个变量存放BMI
- float height, weight, BMI;
- //2.输入身高,体重
- printf("请输入身高\n");
- scanf("%.2f", &height);
- printf("请输入体重\n");
- scanf("%.2f", &weight);
- //3.计算BMI的值
- BMI=weight/(height*height);
- //4.用if语句来判断BMI属于哪个档次并输出相应身体状况
- if (BMI>32){
- printf("严重肥胖!");
- } else if (BMI>28){
- printf("肥胖!");
- } else if (BMI>25){
- printf("过重!");
- } else if (BMI>18.5){
- printf("正常");
- } else{
- printf("过轻!");
- }
- return 0;
- }
在第二步的时候使用scanf的时候我想把输出的数据显示小数点后两位,所以在这里加入了.2,这就是概念混淆的问题。实际上想要确定输出的数据显示小数点后两位只需要在printf中加入.2就行了。正确代码如下所示:
- #include <stdio.h>
-
- /*输入一个人的身高(m)和体重(kg),根据BMI公式(体重除以身高的平方)计算他的BMI指数。
- 例如:一個52公斤的人,身高是155cm,则BMI为 :
- 52(kg)/1.55^2(m)= 21.6(**)
- BMI指数:
- 低于18.5:过轻
- 18.5-25:正常
- 25-28:过重
- 28-32:肥胖
- 高于32:严重肥胖*/
- int main(int argc, char *argv[]) {
- //1.定义两个变量用来存放身高和体重,一个变量存放BMI
- float height, weight, BMI;
- //2.输入身高,体重
- printf("请输入身高\n");
- scanf("%f", &height);
- printf("请输入体重\n");
- scanf("%f", &weight);
- //3.计算BMI的值
- BMI=weight/(height*height);
- //4.用if语句来判断BMI属于哪个档次并输出相应身体状况
- if (BMI>32){
- printf("严重肥胖!");
- } else if (BMI>28){
- printf("肥胖!");
- } else if (BMI>25){
- printf("过重!");
- } else if (BMI>18.5){
- printf("正常");
- } else{
- printf("过轻!");
- }
- return 0;
- }
C语言小白亲身经历,C语言的输入输出方式跟Java还是有些不一样的,所以不管写什么代码的时候都要万分注意小细节^_^。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。