OriginalGriff
Посмотрите на свой код:
Console.WriteLine("Please enter weight in kilograms:");
x = Console.ReadLine();
...
Console.WriteLine("x");
Console.WriteLine("Please enter height in meters:");
y = Console.ReadLine();
...
Console.WriteLine("y");
Год считывает значение, игнорирует его и распечатывает.
Почему вы ожидаете, что он напечатает что-то другое, кроме того, что вы ввели?
Затем вы вычисляете ИМТ:
int x1;
x1 = 1 * 50;
...
int y1;
y1 = (int)2.4964;
...
Console.WriteLine("The BMI is" + x1 / y1);
Что - даже если это сработает, а это не так - всегда будет печатать одно и то же значение!
Остановитесь и подумайте о том, что вы делаете: почему вы используете целые числа для вычисления значения, которое не является целым числом? Почему вы читаете высоту в метрах и используете целые числа? Вы получите 1 почти у всех взрослых, редкие 2 и 0 для многих детей!
Целые числа содержат "целые числа": 0, 1, 2, 3, 4 ... (и отрицательные целые числа, конечно же).
Плавающие или двойные числа содержат "дробные числа": 1.6, 3.1415926, 2.7182818, ...
Поэтому, когда вы приведете 2.4964 (который был бы жирафом, а не человеком) к целому числу, вы получите ... 2.
Измените свое приложение для использования
double
ценности повсюду вместо того, чтобы
int
, и используйте правильную формулу:
Индекс массы тела - Википедия[
^] : вес / (высота * высота).
Вам также нужно будет преобразовать строки, которые Вы читаете от пользователя, в действительные числа:
double weight;
if (!double.TryParse(userInputString, out weight)
{
Console.WriteLine($"\"{userInputString}\" is not a number!");
return;
}
Прекратите бросать код вместе и подумайте о том, что вы пытаетесь сделать в первую очередь.
Вы можете обнаружить, что это помогает:
Как написать код для решения проблемы, руководство для начинающих[
^]