我有一个循环,打印出不同的BMI值10级的用户在此格式:C - 如何为评估表达式的结果输出不同的字符串?
USER BMI STATUS
1
:
10
的BMI状态最终字符串"Overweight", "Normal" , "Underweight", and "Obese"
- 减持 - 当BMI低于18.50
- 正常 - 当BMI从18.50到24.9时
- 超重 - 当BMI从25.0到29.9时
- 肥胖 - 当BMI是大于30.0
我已经想通了如何打印出从真棒答案我here新线的BMI值,但我仍然发现很难显示BMI状态。
这里是我有,
#include <stdio.h>
#include <math.h>
int main(void) {
float weight_value[10];
float user_height[10];
float BMI = 0.0f;
char* BMI_Status[] = {"Underweight", "Normal", "Overweight", "Obese"};
int i;
for (i = 0; i < 10; i++)
{
printf("Please enter your weight: ");
scanf("%f", &weight_value[i]); //Reads in the user's weight and stores it in an array
printf("Now enter your height: ");
scanf("%f", &user_height[i]); //Reads in the user's height and stores it in an array.
}
printf("\n");
printf("USER BMI STATUS\n");
for (i = 0; i < 10; i++)
{
BMI = weight_value[i]/(user_height[i] * user_height[i]);
printf("%2d %23.7f \n", i+1 , BMI);
}
return 0;
}
我创建的字符数组保存的BMI状态字符串,但因为这些都是将要在代码的表达推断串,我不知道如何在每一行上打印它们。
我想过使用if
条件来测试BMI值何时为真,但是当我到达要添加打印出BMI状态字符串的参数的部分时,我感到困惑。
'if'有什么问题?你可以在得到'BMI'的值后继续' – 2014-10-30 14:06:59
@SouravGhosh我尝试过这样做,但是我发现在第二次循环的每次迭代时都难以打印出不同的'BMI_Status []'字符串。 – 2014-10-30 14:09:59
考虑一个变量标志,如果bmi <18.50,do标志= 0,否则如果18.50
2014-10-30 14:13:54