我一周前才开始编程,我的第一个任务是编写一个 BMI 计算器。
启动时应该是这样的:
BMI Calculator
Your weight in kg: x
Your height in cm: x
Gender (m/f): x
-> You are underweight/normal/overweight
到目前为止,这是我的代码:
Console.WriteLine("BMI Calculator");
Console.WriteLine("===========");
Console.WriteLine();
Console.Write("Weight in kg: ");
int kg;
kg = Convert.ToInt32(Console.ReadLine());
Console.Write("Height in cm: ");
int m;
m = Convert.ToInt32(Console.ReadLine());
Console.Write("Gender (m/f):");
string Geschlecht = Console.ReadLine();
int BMI;
BMI = kg / (m / 100) * (m / 100);
if (BMI < 19 & Gender == "f")
{ Console.WriteLine("-> Underweight"); }
if (BMI >= 19 & BMI <= 24 & Gender == "f")
{ Console.WriteLine("-> Normal"); }
if (BMI > 24 & Geschlecht == "f")
{ Console.WriteLine("-> Overweight"); }
if (BMI < 20 & Gender == "m")
{ Console.WriteLine("-> Underweight"); }
if (BMI >= 20 & BMI <= 25 & Gender == "m")
{ Console.WriteLine("-> Normal"); }
if (BMI > 25 & Gendert == "m")
{ Console.WriteLine("-> Overweight"); }
Console.ReadLine();
我不确定我的代码有什么问题,但每当我输入 60 公斤、170 厘米和男性时,我就会超重,即使我应该是正常的。实际上,任何超过 10 公斤的东西都是一样的。
PS:我真的是编程的初学者,所以我为我对编程术语的掌握表示歉意。
为了您的方便:
http://i.stack.imgur.com/admqr.png
提前致谢!
最佳答案
当你这样做时:
BMI = kg / (m / 100) * (m / 100);
而 m
是一个 int
,您将进行整数除法,在这种情况下 170/100 = 1
。正如 User1551892 指出的那样,您需要更具体地说明计算顺序。
尝试:
double BMI = kg / ( ( m / 100.0 ) * ( m / 100.0 ) );
这将迫使它进行浮点除法,应该会给你带来更好的结果。
此外,您可以使用 Math.Pow
来避免 m/100.0
两次:
double BMI = kg / Math.Pow( m / 100.0, 2 );
关于c# - 谁能帮我检查一下我的 BMI 计算器? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478961/