我正在整理一个包含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();
}
}
}
}
我的代码的错误是,一旦处理了最高值或最小值,无论是在文件的开头还是在中间,我都无法处理最大值。
答案 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建议的;您应该重置最大值和最小值,就像您在开始时所做的那样。在您使用最小值和最大值之后,正确的位置就是正确的。