2013-04-15 4 views
1

Мне нужна помощь при вычислении ИМТ. Я прочитал данные из файла и заполнил 2 массива, которые содержат вес и высоту людей. Я создаю третий массив, содержащий ИМТ этих людей. Я знаю, что BMI - bmi = вес/(высота * высота); Проблема, которую я получаю, заключается в том, как вычислить ИМТ, когда данные, которые мне нужно вычислить, хранится в массивах. Я думал о том, чтобы перебирать каждый массив (рост и вес) и вычислять BMI в этом цикле каждым индексом массива. Оба массива имеют одинаковый размер и имеют двойной тип данных. Может кто-нибудь сказать мне, если это лучший способ сделать это?Расчет ИМТ C++

+0

Это звучит как хорошее решение. Я имею в виду, как еще ты предлагаешь это сделать? – alrikai

+0

да, это лучший способ сделать это. Или вы можете сохранить высоту и вес как вектор >. Таким образом, вы будете проходить только через один массив. – veda

+0

@alrikai Я думал об использовании трехслойного вложенного цикла, который пробивает все 3 массива и увеличивает его до sizeof (bmi [], height [] и weight [])? – user12074577

ответ

2

Что касается вашего комментария в вопросе, вам не нужно делать 3 вложенных цикла, так как индексы выравниваются по вашим трем массивам (высота, вес и BMI). Для примера, у нас есть 2 входных массива, на которые ссылается ваш вопрос, высота и вес как длина n.

const int n = 10; 
double height [n]; 
double weight [n]; 
//read from array, populate arrays height and width 
//... 

//have 1 output BMI value per input value 
double BMI [n]; 

//calculate the BMI values based on the heights and widths 
for (int i = 0; i < n; i++) 
{ 
    BMI[i] = height[i]/(weight[i]*weight[i]); 
} 

Надеюсь, я понял, что вы правильно задавать

+0

Хорошо, я устал, я получаю такое же странное отрицательное число, как и все ИМТ людей. Он говорит «-1.08038e-058» – user12074577

+2

, который звучит так, будто вы используете неинициализированные данные. Вы правильно читаете свои высоты и вес? Попробуйте отладить свой код или распечатать свои значения, считанные из ваших файлов данных, чтобы убедиться, что вы правильно получаете данные. – alrikai

+0

Я, но я не могу понять всю жизнь, почему ее одинаковое количество для каждого человека и вес экспоненциальное отрицательное число ... – user12074577

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