毕达哥拉斯定理腿计算

时间:2015-12-10 02:34:47

标签: c# math

我正在制作毕达哥拉斯定理计算器,我遇到了一些问题:

static void Main(string[] args)
        {
            double a, b, c;
            Console.WriteLine("Which side do you need to calculate? (a, b, c)");
            string side = Console.ReadLine();

            switch (side.ToLower())
            {
                case "a":
                    Console.WriteLine("Enter length of b");
                    b = double.Parse(Console.ReadLine());
                    Console.WriteLine("Enter length of c");
                    c = double.Parse(Console.ReadLine());


                    a = Math.Sqrt(Math.Pow(b, 2) - Math.Pow(c, 2));
                    a = Math.Round(a, 4);
                    Console.WriteLine("Side a is ~ {0}", a); 

                    break;

                case "b":
                    Console.WriteLine("Enter length of a");
                    a = double.Parse(Console.ReadLine());
                    Console.WriteLine("Enter length of c");
                    c = double.Parse(Console.ReadLine());

                    b = Math.Sqrt(Math.Pow(a, 2) - Math.Pow(c, 2));
                    //b = Math.Round(b, 4);
                    Console.WriteLine("Side b is ~ {0}", b);
                    break;

                case "c":
                    Console.WriteLine("Enter length of a");
                    a = double.Parse(Console.ReadLine());
                    Console.WriteLine("Enter length of b");
                    b = double.Parse(Console.ReadLine());

                    c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
                    c = Math.Round(c, 4);
                    Console.WriteLine("Side a is ~ {0}", c);
                    break;
            }
        }

我的斜边工作正常,但需要对其他方面/腿部有一些指导。

非常感谢所有帮助!

2 个答案:

答案 0 :(得分:0)

假设一个直角三角形 其中c是斜边

a = Math.Sqrt(Math.Pow(c, 2) - Math.Pow(b, 2));
b = Math.Sqrt(Math.Pow(c, 2) - Math.Pow(a, 2));
c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));

看起来你有b-c和a-c而不是

答案 1 :(得分:0)

另一篇文章指出了你的代码出了什么问题,但我想指出你在代码中做了很多额外的工作。试试这个模式:

max

通过引入第3个变量来从a,b,c中进行选择,你实际上过分复杂了如何得到答案。我注意到了这一点,因为你的3个案例中的所有数学都完全相同。