Что-то не так с моей формулой? - PullRequest
0 голосов
/ 06 марта 2020

Мой код вычисляет средний рост ребенка после того, как он становится взрослым, используя рост родителей

Я получаю рост для ребенка, который составляет 7 футов +, когда мать и отец находятся между 4-6 футами

Hmale_child = ((Hmother * 13/12) + Hfather) / 2

Hfemale_child = ((Hfather * 12/13) + Hmother) / 2

            if (gender.equalsIgnoreCase("Male")) {
            childHeightInch = (((monHeightInch + (monHeightFeet * 12)) * 13 / 12) + (dadHeightInch + (dadHeightFeet * 12)) / 2);
            childHeightFeet = childHeightInch / 12;
            childHeightInch = childHeightInch % 12;
        } else if (gender.equalsIgnoreCase("Female")) {
            childHeightInch = (((dadHeightInch + (dadHeightFeet * 12)) * 12 / 13) + (monHeightInch + (monHeightFeet * 12)) / 2);
            childHeightFeet = childHeightInch / 12;
            childHeightInch = childHeightInch % 12;

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

Добавьте несколько скобок, это только деление высоты папы на 2

childHeightInch = (((((monHeightInch + (monHeightFeet * 12)) * 13) / 12) + (dadHeightInch + (dadHeightFeet * 12))) / 2);

childHeightInch = (((((dadHeightInch + (dadHeightFeet * 12)) * 12) / 13) + (monHeightInch + (monHeightFeet * 12))) / 2);
0 голосов
/ 06 марта 2020

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

Не пишите скобок, которые вам не нужны математически. И подумайте сначала о расчете общей высоты папы и мамы, как показано ниже.

int dadsHeightTotal = dadsHeightInches + dadsHeightFeet * 12;
int mumsHeightTotal = mumsHeightInches + mumsHeightFeet * 12;

if (gender.equalsIgnoreCase("male")) {
    childsHeightTotal = ( mumsHeightTotal * 13 / 12 + dadsHeightTotal ) / 2;
} else {
    childsHeightTotal = ( dadsHeightTotal * 12 / 13 + mumsHeightTotal ) / 2;
}

childsHeightFeet = childsHeightTotal / 12;
childsHeightInches = childsHeightTotal % 12;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...