1

我正在尝试做一个基本的 BMI 计算器,当我做它的公制方面它工作正常,但是,英制方面返回一个错误的答案。

cout << "What is your weight? ";
cin >> weight;

cout << "What is your height in either inches or meters? ";
cin >> height;

cout << "Is that metric or imperial? Type 1 for metric, or 0 for imperial ";
cin >> unit;

if (unit = 1) 
answer = weight / (height * height);
if (unit = 0)
answer = (weight * 703) / (height * height);
cout << "Your BMI is " << answer << endl;
system("PAUSE");
return 0;  

根据维基百科,我认为英制的 BMI 方程是

重量(磅)* 703 /(高度平方英寸)

4

2 回答 2

4

使用 == 来测试相等性 not =

于 2012-12-17T17:29:44.420 回答
1

您在 if 语句中使用了赋值运算符“=”,这两个语句都将始终返回 true,因为您可以将“0”或“1”的值分配给单位。

要测试是否相等,您必须使用“==”。

这应该可以解决这个问题!(:

于 2012-12-17T17:34:42.240 回答