我正在制作毕达哥拉斯定理计算器,我遇到了一些问题:
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;
}
}
我的斜边工作正常,但需要对其他方面/腿部有一些指导。
非常感谢所有帮助!
答案 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个案例中的所有数学都完全相同。