2013-10-24 4 views
0

Я пытаюсь вычислить средний ИМТ нескольких людей. Когда я запускаю этот код, средний ИМТ падает каждый раз, когда я нажимаю кнопку расчета. Зачем?Почему мой код усреднения BMI работает неправильно?

float feet; 
float inches; 
float height; 
float weight; 
float bmi; 
float averagebmi; 

try 
{ 
    //Get user input. 
    feet = float.Parse(txtFeet.Text); 
    inches = float.Parse(txtInches.Text); 
    weight = float.Parse(txtWeight.Text); 

    //Calculations. 
    inches += feet * 12; 
    height = inches * (float)0.0254; 
    weight = weight * (float)0.453592; 
    bmi = weight/(height * height); 

    //Manager Calculations. 
    totalPeople += 1; 
    bmi += 1; 
    averagebmi = bmi/totalPeople; 
+0

Вы делаете это в цикле? Если вы не сбросите значения ваших переменных до нуля до их повторного использования, тогда их значения будут накапливаться. –

ответ

7

Средний ИМТ должен быть общим ИМТ, деленным на общего количества людей.

Вам нужно добавить:

float totalbmi; 

Тогда расчеты менеджер должен быть:

//Manager Calculations. 
totalPeople += 1; 
totalbmi += bmi; 
averagebmi = totalbmi/totalPeople; 
+0

Спасибо, что сработал! Не могу поверить, что у меня был этот код раньше, но я удалил его, потому что думал, что это неправильно. – Gunnar

Смежные вопросы