我需要帮助编写矩形金字塔总表面积的公式。这是我想用C#编写的公式:
这是我到目前为止所做的,我尝试了各种变化(比如使用Math.Pow等),但仍然没有进展:
resultPyramidArea = "Pyramid area: " + (length3d * width3d + length3d) * Math.Sqrt(((width3d / 2.000) * (width3d / 2.000)) + (height3d * height3d)) + width3d * Math.Sqrt(((length3d / 2.000) * (length3d * 2.000)) + (height3d * height3d));
在公式中,A是Area,l替换为length3d,w替换为width3d,h替换为height3d
非常感谢任何帮助。
答案 0 :(得分:2)
您的操作顺序不正确。它应该是这样的:
resultPyramidArea =
(length3d * width3d)
+ (length3d * Math.Sqrt(Math.Pow(width3d / 2, 2) + Math.Pow(height3d, 2)))
+ (width3d * Math.Sqrt(Math.Pow(length3d / 2, 2) + Math.Pow(height3d, 2)));
编辑:代码我用来为你测试这个陈述OP:
static void Main()
{
double length3d = 4;
double width3d = 2;
double height3d = 3;
double resultPyramidArea = (length3d * width3d) + (length3d * Math.Sqrt(Math.Pow(width3d / 2, 2) + Math.Pow(height3d, 2))) + (width3d * Math.Sqrt(Math.Pow(length3d / 2, 2) + Math.Pow(height3d, 2)));
Console.WriteLine(resultPyramidArea);
Console.ReadLine();
}
这是正确的,我在谷歌的在线计算器上尝试了输入并得到了正确的答案。如果您仍然遇到问题,可能是因为在原始代码中resultPyramidArea
正在添加字符串和双精度数,如果resultPyramidArea是双重类型变量,则这不是C#中的有效语句,如果如果要显示“金字塔区域:”消息,请执行以下操作:
Console.WriteLine("Pyramid area: {0}", resultPyramidArea)
resultPyramidArea只是一个双重
答案 1 :(得分:1)
你走了:
double length3d = 10;
double width3d = 10;
double height3d = 10;
double slant1 = Math.Sqrt(Math.Pow(width3d / 2, 2) + Math.Pow(height3d, 2));
double slant2 = Math.Sqrt(Math.Pow(length3d / 2, 2) + Math.Pow(height3d, 2));
resultPyramidArea = (length3d * width3d) + (length3d * slant1) + (width3d * slant2);
// Output: 323.60679774997897
编辑:添加与谷歌的结果比较OP
Google的输出