2016-09-30 6 views
0
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; 

} 

Выходной результат:Вычитание дает мне положительный результат C++

Какой ваш текущий вес ?: 180

Какова ваша текущая высота в дюймах»71

Ваш ток BMI: 25.10 (Не является частью выхода, но это верно)

Какая цель? Изменение веса? (Lbs) -1.5

Сколько недель вы планируете продолжать эту тенденцию ?: 6

Если Вы заканчиваете свой план в течение 6 недель вы будете иметь новый ИМТ: 26.36

Как вы можете сказать, что это неправильно

Расчет для ИМТ (вес * 703)/высота^2 (дюймы)

Что она делает для отрицательных чисел:

180 + 9 (а не 180 - 9) с получением (191 * 703)/71^2 с получением 26,36

Вместо того, чтобы:

180 - 9 (давая 171 * 703)/71^2 получая правильный вывод: 23,84

Я знаю, что вы все встряхиванием головы говорят, что я должен быть идиотом, и это справедливо, я надеюсь, что кто-то может он Это мне!

+0

Нет, я не качаю головой. И ты не идиот. –

ответ

2

Что вы изменение веса цели? (Фунты) -1,5

Сколько недель вы планируете продолжать эту тенденцию ?: 6

6 * (-1.5) == -9 
180 - (-9) == 189 

Таким образом, вы либо входной вес цели изменить как положительное число или добавить его, а не вычесть.

+0

Ничего себе я абсолютно плотный, исправил его, и он отлично работал. Благодаря! – Xor

2

Ваш newWeight в результате к -9 из-за вашего заявления 6 * -1.5 Если вы хотите, чтобы вычесть это просто сделать (weight + newWeight), а не -.

0

Вы считаете, что если вы делаете (+NewWeight), значение NewWeight будет положительным?

это не так:

Унарное Плюс Оператор (+): В результате операции на числовой тип является значение самого операнда. Этот оператор предопределен для всех числовых типов.

В качестве решения используйте концепцию Reginalds и сделайте (weight + newWeight), а не -.

+0

Я попытался удалить его, когда увидел его, но, наверное, вы его видели заранее! Я просто играл с тем, что, как я думал, мог бы сделать, я скомпилировал его так, и тем не менее он дал тот же ответ! – Xor