【问题标题】:Can anyone help me check my BMI Calculator? (C#)谁能帮我检查一下我的 BMI 计算器? (C#)
【发布时间】:2013-10-20 15:07:28
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: c# console calculator


    【解决方案1】:

    当你这样做时:

    BMI = kg / (m / 100) * (m / 100);
    

    mint,您将进行整数除法,在这种情况下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 );
    

    【讨论】:

      【解决方案2】:

      请检查这一行:

      BMI = kg / (m / 100) * (m / 100);
      

      应该是这样的:

      BMI = kg / ((m / 100) * (m / 100)) ;
      

      【讨论】:

        【解决方案3】:

        仅供参考,新堆栈的交换门户已打开:codereview.stackexchange.com

        应该是更好的地方要求审查

        【讨论】:

          【解决方案4】:

          虽然 BMI 的计算已关闭。它是(体重/身高)/身高 所以 int bmi = (kg/(m/100))/(m/100)

          【讨论】:

            【解决方案5】:

            在每个 IF 语句中检查您的性别变量...

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-08-26
              • 2023-03-13
              • 1970-01-01
              • 1970-01-01
              • 2011-12-05
              • 1970-01-01
              • 2022-08-10
              相关资源
              最近更新 更多