【发布时间】:2016-11-16 02:01:45
【问题描述】:
我有一个输入文件,其中包含主要分数和次要分数。我需要找到初级分数的平均值。
我能够读取主要和次要分数并将它们添加到列表中。但是在计算平均值时,我在 s1.Average(PrimaryScore);
行出现错误我正在附加 program.cs 和回归 .cs 类。感谢您的帮助。
class Program
{
static Regression s1;
static void Main(string[] args)
{
int numRecords = 0;
List<double> PrimaryScore = new List<double>();
List<double> SecondaryScore = new List<double>();
FileStream fs = null;
Console.Write("Enter the file path: ");
while (fs == null)
{
string fileName = Console.ReadLine();
fs = OpenFileForRead(fileName);
}
StreamReader sr = new StreamReader(fs);
ReadFirstValueAsInt(sr, ref numRecords);
sr.ReadLine();
for (int i = 1; i <= numRecords; i++)
{
ReadRecordAsDoubleList(sr, PrimaryScore);
ReadRecordAsDoubleList(sr, SecondaryScore);
Console.WriteLine("Primary Data set {0}: ", i);
foreach (double d in PrimaryScore)
Console.Write(d + " ");
Console.WriteLine();
Console.ReadLine();
PrimaryScore.Clear();
sr.ReadLine();
Console.WriteLine("Secondary Data set {0}: ", i);
foreach (double d in SecondaryScore)
Console.Write(d + " ");
Console.WriteLine();
Console.ReadLine();
SecondaryScore.Clear();
}
s1 = new Regression();
s1.Average(PrimaryScore); //getting an error here
}
public static FileStream OpenFileForRead(string fileName)
{
try
{
return new FileStream(fileName, FileMode.Open, FileAccess.Read);
}
catch (Exception e)
{
Console.Write("Problem opening file {0}, please enter a valid path: ", fileName);
}
return null;
}
public static void ReadFirstValueAsInt(StreamReader sr, ref int numRecords)
{
try
{
numRecords = Int32.Parse(sr.ReadLine());
}
catch (Exception e)
{
Console.Write(e.Message);
}
}
public static void ReadRecordAsDoubleList(StreamReader sr, List<double> cr)
{
try
{
string[] doubles = sr.ReadLine().Split(new char[] { ' ' });
foreach (string s in doubles)
cr.Add(Double.Parse(s));
}
catch (Exception e)
{
Console.Write(e.Message);
}
}
}
程序类调用的回归类
class Regression
{
public static double Average(List<double> PrimaryScore)
{
int sum = 0;
foreach (int element in PrimaryScore)
sum += element;
return (double)sum / PrimaryScore.Count;
}
}
【问题讨论】:
-
'我在线出错'---编译错误还是运行时异常?
-
错误信息是什么
-
附带说明:您应该在使用它们后关闭
Streams 或将它们包装在using语句中。