0

我的程序有点问题。基本上,我必须创建一个程序来查找窗口(例如玻璃窗)的区域。公式是面积 = 高度 * 宽度,这就是我输入的内容。但是,结果实际上并没有回答高度 * 宽度。如果我输入相同的两个数字(例如,3 * 3),答案将是正确的 (9)。另一方面,如果我输入两个不同的数字(例如,4 * 5),则答案不正确(它会说上一个示例的答案是 25,应该是 20)。谁能帮我理解为什么会这样并帮我解决问题?

PS 我刚刚开始在学校使用 Microsoft Visual C# 2010 Express 进行计算。这就是为什么它相当简单。

using System;

namespace FindTheArea
{
    class Program
    {
        static void Main(string[] args)
        {               
            string temporary;
            double Height;
            double Width;
            double Area;

            Console.WriteLine("Find The Area");
            Console.WriteLine("Please enter the height below");
            temporary = Console.ReadLine();
            Console.WriteLine("Please enter the Width below");
            temporary = Console.ReadLine();

            Console.Clear();

            Height = double.Parse(temporary);
            Width = double.Parse(temporary);

            Area = (Height * Width);

            Console.WriteLine("The area is...");
            Console.WriteLine();
            Console.WriteLine(Area+"cm2");

            Console.Read();
        }
    }
}

我现在明白我哪里出错了。但是我该如何解决呢?

4

6 回答 6

6
Height = double.Parse(temporary);
Width = double.Parse(temporary);

这里有一个明显的问题。的行为double.Parse()是确定性的,因此您将相同的值分配给HeightWidth

于 2012-09-07T21:24:22.760 回答
2
Console.WriteLine("Please enter the height below");

temporary = Console.ReadLine();

Console.WriteLine("Please enter the Width below");

temporary = Console.ReadLine();

您正在覆盖 的第一个值temporary。您应该将输入的值分配给两个不同的变量。

string temporaryHeight;
string temporaryWidth;

Console.WriteLine("Please enter the height below");

temporaryHeight= Console.ReadLine();

Console.WriteLine("Please enter the Width below");

temporaryWidth= Console.ReadLine();
于 2012-09-07T21:24:58.407 回答
0

看看这段代码:

    Console.WriteLine("Please enter the height below");

    temporary = Console.ReadLine();

    Console.WriteLine("Please enter the Width below");

    temporary = Console.ReadLine();

您将高度值分配给临时值,然后将宽度值分配给临时值。这意味着您已经丢失了高度值,因为您已经覆盖了它。

于 2012-09-07T21:27:34.687 回答
0

临时有同样的价值!将一个更改为temporary1,将另一个更改为temporary2。

于 2012-09-07T21:24:57.860 回答
0
 Console.WriteLine("Please enter the height below");

        temporary = Console.ReadLine();

        Console.WriteLine("Please enter the Width below");

        temporary = Console.ReadLine();

您没有存储第一个值。

于 2012-09-07T21:25:22.073 回答
0

使用系统;

namespace FindTheArea
{

    class Program
    {

        static void Main(string[] args)
        {
            double Height;
            double Width;
            double Area;

            Console.WriteLine("Find The Area");
            Console.WriteLine("Please enter the height below");
            Height = double.Parse(Console.ReadLine());
            Console.WriteLine("Please enter the Width below");
            Width = double.Parse(Console.ReadLine());

            Console.Clear();

            Area = (Height * Width);

            Console.WriteLine("The area is...");
            Console.WriteLine();
            Console.WriteLine(Area+"cm2");

            Console.ReadKey();
        }

    }

}
于 2012-09-07T21:48:30.623 回答