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

时间:2013-10-16 20:21:47

标签: 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();

3 个答案:

答案 0 :(得分:6)

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

var Out = new int[] { input };

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

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

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

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();

答案 1 :(得分:2)

List<int> numbers = new List<int>();
        numbers.Add(10);
        numbers.Add(30);
        numbers.Add(20);
        numbers.Add(0);
        numbers.Max();
        numbers.Min();
        numbers.Average();

返回30,0和15。

答案 2 :(得分:1)

在循环之前,您应该使Out成为类似于数组List的可扩展数据结构。

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

然后每个循环,你可以

Out.Add(input);

由于这听起来像是读者的练习,因此您可以遍历列表并计算所有数据值的平均值。


或者,在循环之前,您可以声明

int n = 0;
int total = 0;

和每个循环,执行

n += 1;
total += input;

通过这些,您应该可以轻松计算平均值。