无法使程序在C ++中输出正确的结果

时间:2018-08-02 14:32:38

标签: c++

我被要求制作此程序来计算人的身体质量指数。由于我发现US_IMPERIAL未运行,METRIC不完整。我无法弄清错误,因为无论输入什么数字,结果都为0。

#include <iostream>
using namespace std;

float METRIC (int b, int c)
{
  float res;
  res = b / c / c * 10000;
  return res;
}


float US_IMPERIAL (float d, float e)
{
  float resu;
  resu = (d / e / e) * 703;
  return resu;
}

int main () 
{
  cout << "Hello. BMI CALCULATOR!" << endl <<
    "Press 1 for METRIC or 2 for US imperial: ";
  int a;
  cin >> a;
  if (a == 1) {
    cout << "Enter your weight in KILOGRAMS (KG): ";
    int b;
    cin >> b;
    cout << "Now enter you height in CENTIMETERS(CM): ";
    int c;
    cin >> c;
    cout << "Your BMI is: " << METRIC (b, c);
  } else if (a == 2) {
    // not yet implemented
  } else {
    cout << "Error.";
  }
  return 0;
}

1 个答案:

答案 0 :(得分:1)

METRIC函数中,表达式b / c / c * 10000所有整数表达式。如果您想要分数,那将不会很好。

我建议您将参数bc转换为浮点变量。