如何根据用户输入进行计算

本文关键字:计算 输入 用户 何根 | 更新日期: 2023-09-27 18:09:51

这是我的代码块,我不知道如何让周长和体积执行计算。例如,当我输入1,1,1,1为前4个参数,我得到0,0为体积和周长。

       if (packages == 1)
        {
            int width = 0, length = 0, height = 0, weight = 0;
            int volume = 0, girth = 0;
            int[] packageInfo = new int[6] { width, length, height, weight ,volume, girth };
            packageInfo[4] = height * width * length;
            packageInfo[5] = (2 * length + 2 * width);
            double packageSum = 0;

            for (int k = 0; k < 4; k++)
            {
                string line = Console.ReadLine();
                if (!int.TryParse(line, out packageInfo[k]))
                {
                    Console.WriteLine("Couldn't parse {0} - please enter integers", line);
                    k--;
                }
            }
            if(packageInfo[3] > 25)
            {
                packageSum = 0;
                Console.WriteLine("Package couldn't be shipped because of its size.");
            }
            if (volume > 4800)
            {
                packageSum = packageSum + 5.95;
            }
            if (volume > 9600)
            {
                packageSum = 0;
                Console.WriteLine("Package couldn't be shipped because of its size.");
            }
            foreach (var item in packageInfo)
                Console.WriteLine(item.ToString());
        }

如何根据用户输入进行计算

c#中的变量不像数学中的变量。据我所知,当packageInfo[0], packageInfo[1], packageInfo[2]被修改时,您希望packageInfo[4]被更新。因为,在数学中,如果你将体积定义为高*宽*长并且你修改了这些变量中的任何一个,那么体积就会改变。不幸的是,c#中的"标准变量"只是一串比特。你读/写它。我不是很精确(我不是那么精通语言),但是没有变量是根据其他变量定义的概念(它们只能用一些值初始化,这些值可能是其他变量的值)。要创建这样的关系,需要语言结构来表示它们。

所以你的代码现在做的是:

  • 初始化高度,长度,宽度等
  • 复制这些值到数组
  • Console读取输入时,packageInfo[0], packageInfo[1], packageInfo[2], packageInfo[3]被修改。
  • 数组中的所有值都不相互关联/依赖。如果你修改了packageInfo[0],它不会修改packageInfo[]
  • 中的其他int

你可以模仿的行为更类似于数学,如:

private int _height;
private int _width;
private int _length;
private int Volume = 
{
    get { return _height * _width * _length };
}

您应该在获得用户输入后计算它们。按以下方式重新排列代码:

for (int k = 0; k < 4; k++)
            {
                string line = Console.ReadLine();
                if (!int.TryParse(line, out packageInfo[k]))
                {
                    Console.WriteLine("Couldn't parse {0} - please enter integers", line);
                    k--;
                }
            }
packageInfo[4] = packageInfo[0] * packageInfo[1] * packageInfo[2];
packageInfo[5] = (2 * packageInfo[0] + 2 * packageInfo[1]);

仔细检查你的代码。

首先,这样做:

        int width = 0, length = 0, height = 0, weight = 0;
        int volume = 0, girth = 0;
        int[] packageInfo = new int[6] { width, length, height, weight ,volume, girth };
        packageInfo[4] = height * width * length;
        packageInfo[5] = (2 * length + 2 * width);
        double packageSum = 0;

0 * 0 * 0 = 0.

2 * 0 + 2 * 0 = 0

然后,之后,您已经计算了体积和周长,您实际上向用户查询输入:

        for (int k = 0; k < 4; k++)
        {
            string line = Console.ReadLine();
            if (!int.TryParse(line, out packageInfo[k]))
            {
                Console.WriteLine("Couldn't parse {0} - please enter integers", line);
                k--;
            }
        }