C# - 显示最大值,最小值和平均值

use*_*593 2 c#

我是C#的新手.我一直致力于这个项目和研究,但我没有得到任何结果.目标是让用户输入数字(用户数量).当他们输入0时,它将停止程序并显示输入的最小数字,输入的最大数字以及输入的所有数字的平均值.我没有得到任何错误,我得到了.如果有人可以请我指出正确的方向.

WriteLines正在返回:

最小数字是0最高数字是0平均值是:0计数:5

这是我的代码:

int LOWEST =0;
int HIGHEST=0;
const int STOP = 0;
double average = 0;
int input;

int count = 0;
Console.WriteLine("Enter a number. You can end the program at anytime by entering 0");
input = Convert.ToInt32(Console.ReadLine());
while (input != STOP)
{
     for (int i=0; input != STOP; i++)
     {
           Console.WriteLine("Enter a number. You can end the program at anytime by entering 0");
           input = Convert.ToInt32(Console.ReadLine());
           count++;
           var Out = new int[] { input };
           LOWEST = Out.Min();
           HIGHEST = Out.Max();
           average = Out.Average();

           if ((input > LOWEST) || (input < HIGHEST))
           {
                 LOWEST = Out.Min();

           }
           if (input > HIGHEST)
           {
                 HIGHEST = Out.Max();
           }
      }
}


Console.WriteLine("Lowest number is {0}", LOWEST);
Console.WriteLine("Highest number is {0}", HIGHEST);
Console.WriteLine("Average is {0}", average);
Console.WriteLine("Count: {0}", count);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

Wou*_*ort 6

在每次运行中,您将构建一个新的整数数组:

var Out = new int[] { input };
Run Code Online (Sandbox Code Playgroud)

在此行之后,Out包含一个项目:最后一个输入.调用Min,MaxAverage在其上将返回最后一个值.如果您结束该计划,则为零.

而不是每次都创建一个新数组,你想List<int>在程序的开头创建一个,然后将每个输入添加到它.然后,您可以使用整个值列表来计算Min,MaxAverage.

最终,您可以将代码更改为以下内容:

const int STOP = 0;
int input = -1;

List<int> Out = new List<int>();

while (input != STOP)
{
    Console.WriteLine("Enter a number. You can end the program at anytime by entering 0");
    input = Convert.ToInt32(Console.ReadLine());

    if (input == STOP) break;

    Out.Add(input);

}


Console.WriteLine("Lowest number is {0}", Out.Min());
Console.WriteLine("Highest number is {0}", Out.Max());
Console.WriteLine("Average is {0}", Out.Average());
Console.WriteLine("Count: {0}", Out.Count);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)