c# - 谁能帮我检查一下我的 BMI 计算器? (C#)

标签 c# console calculator

我一周前才开始编程,我的第一个任务是编写一个 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/

相关文章:

php - Slim 3 控制台执行 cron

c# - C#使用唯一的整数填充数组No Linq或ArrayLists;

c# - 使用 KMS 加密的 S3 PutObject 失败并出现 403 "Access Denied"错误

c# - 打开 Internet 属性并等待用户关闭它 C#

javascript - 如何借助脚本更快地在 "People you may know"部分添加 Linkedin 连接?

linux - Unix - 如何打印文件的最后几行并且每次都忽略第一个相同的字符?

c# - 查询时将文本转换为sqlite中的int

winapi - 启动 CALC.EXE 并使用 VB6 检索值

iphone - 连线没有代码的计算器按钮,将其删除,现在模拟器崩溃

java - 创建计算器但无法退出