我看过以前的帖子,没有人能找到我正在寻找的答案。 我是C#的新手,试图让这个小应用程序运行起来。 我有一个名为“hours.txt”的文件,里面有30个数字,我想读取文件并输出平均值和最高数字,但我似乎无法让它工作。我已经尝试将数组更改为字符串,但我真的很想知道如何让它工作。任何帮助或提示将不胜感激。
int[] hoursArray = new int[30];
StreamReader fileSR = new StreamReader("hours.txt");
int counter = 0;
string line = "";
line = fileSR.ReadLine();
while (line != null)
{
hoursArray[counter] = line;
counter = counter + 1;
line = fileSR.ReadLine();
}
fileSR.Close();
int total = 0;
double average = 0;
for (int index = 0; index < hoursArray.Length; index++)
{
total = total + hoursArray[index];
}
average = (double)total / hoursArray.Length;
int high = hoursArray[0];
for (int index = 1; index < hoursArray.Length; index++)
{
if (hoursArray[index] > high)
{
high = hoursArray[index];
}
}
Console.WriteLine("Highest number is: " + high);
Console.WriteLine("The average is: " + average);
Console.ReadLine();
答案 0 :(得分:2)
这是错误的,因为你将字符串放入int位置。
hoursArray[counter] = line;
首先将字符串解析为int。
hoursArray[counter] = int.Parse(line);
答案 1 :(得分:1)
作为替代方法,使用LINQ,代码可以用更简洁的代码替换:
string[] lines = System.IO.File.ReadAllLines("hours.txt");
int[] values = lines.Select((l) => int.Parse(l)).ToArray();
double average = values.Average();
int peak = values.Max();