if (GoalWeight < 0.0) {
int weeks;
cout << "How many weeks do you plan to continue this trend?\n";
cin >> weeks;
double NewWeight = GoalWeight * weeks;
double NegBMI = (weight - NewWeight) * 703 / (pow(HeightConverter, 2));
cout << "If you complete your plan for " << weeks << "weeks you will have a new BMI of: \n" << NegBMI;
}
system("pause");
return 0;
}
输出结果:
你目前的体重是多少?:180
你目前的身高是多少英寸?&#34; 71
您当前的BMI是:25.10(不是输出的一部分,但这是正确的)
你的目标体重变化是多少?(lbs)-1.5
你打算在几周内继续这种趋势?:6
如果您的计划完成6周,您将获得新的BMI:26.36
你可以说这是错误的
BMI的计算是(体重* 703)/身高^ 2(英寸)
负面数字的作用是:
180 + 9(而非180 - 9)给出(191 * 703)/ 71 ^ 2,得出26.36
代替:
180 - 9(给出171 * 703)/ 71 ^ 2产生正确的输出:23.84
我知道你们全都摇头说我必须是个白痴,理所当然,我希望有人可以帮助我!
答案 0 :(得分:2)
你的目标体重变化是多少?(lbs)-1.5
你打算在几周内继续这种趋势?:6
6 * ( -1.5 ) == -9
180 - (-9) == 189
因此,您要么将目标体重变化输入为正数,要么将其添加,而不是减去。
答案 1 :(得分:2)
由于您的陈述newWeight
,您6 * -1.5
的结果是-9。如果您想减去它,只需制作(weight + newWeight)
而不是-
。
答案 2 :(得分:0)
您是否相信如果(+NewWeight)
NewWeight
的价值变为正值?
情况并非如此:
一元加运算符(+):对数字类型的运算结果是操作数本身的值。已为所有数字类型预定义此运算符。
作为一种解决方案,使用Reginalds的想法并制作(weight + newWeight)
而不是-
。