重置最大值和最小值C#

时间:2011-10-11 04:43:06

标签: c#

我正在整理一个包含20个随机数的程序,将它们分成4个部分,并计算每个部分的最小值和最大值。我遇到的问题是在每次运行后将最小值和最大值重置为默认值。

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.IO;

 namespace 3
{
class Program
{
    static void Main(string[] args)
    {
        string ln;
        string line;
        int value = 0;
        int max = 0;
        int min = 100;

        using (TextReader tr = new StreamReader("values.txt"))
        {
            string currentLine = null;

            do
            {


                for (int i = 1; i < 6; i++)
                {
                    currentLine = tr.ReadLine();

                    if (currentLine == null)
                    {
                        break;
                    }

                    Console.WriteLine(currentLine);
                    value = int.Parse(currentLine);
                    if (value > max)
                   max=value;




                    if (i % 5 == 0)
                    {
                        Console.WriteLine("the Max is " + max);

                        Console.WriteLine("The Min is " + min);

                        Console.WriteLine("-----");
                    }





                }

            } while (currentLine != null);
            Console.ReadLine();
        }
    }
}
}

我的代码的错误是,一旦处理了最高值或最小值,无论是在文件的开头还是在中间,我都无法处理最大值。

2 个答案:

答案 0 :(得分:1)

您可以在使用后重置“最大值和最小值” - 在打印后的if块内。使用赋值语句。

答案 1 :(得分:1)

让我们举一个简单的例子,说8个数字分为2个部分。

对于数字9,2,5,4,7,1,2,8:

9,2,5,4在第1节和第7节,第1节,第2节,第8节在第2节。

在使用第1部分时,你得到max = 9和min = 2.你的代码正在做的是继续使用第2部分而不将max和min重置为适当的值。你总是最终得到9分

你应该做的是@ David-B建议的;您应该重置最大值和最小值,就像您在开始时所做的那样。在您使用最小值和最大值之后,正确的位置就是正确的。