-1

我目前正在为 UNI 做作业,并且对如何将我的文本文件的内容转换为十进制/双数组感到非常困惑。

它自己问这个问题-“一个计算机程序需要从一个数据文件中读取12个分数(十进制数),将它们存储在一个数组中,并计算中间10个分数的平均值。即最高和最低的这 12 个分数不包括在平均计算中。”

我已经尽力而为,但结果很短,我不知道如何解决此错误“无法将字符串 [] 隐式转换为十进制 []”我相信这是因为我正在使用 File.ReadAllLines,我认为是仅适用于字符串。

using System.IO;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            Decimal[] Score = File.ReadAllLines("Scores.txt");
            Decimal max = Score.Max();
            Decimal min = Score.Min();
            Console.WriteLine(max + min);
            Decimal sum = Score.Sum();
            for (int index = 0; index < Score.Length; index++)
            {
                Console.WriteLine(Score[index]);
            }
            Console.ReadKey();      


            }
    }
}

希望你能帮忙。PS 文本文件中只有数字。

4

2 回答 2

1

它就像货币,你需要先兑换/转换它。

var allString = File.ReadAllLines("Scores.txt");
var arrString = allString.Split('\n');

for (int index = 0; index < arrString.Length; index++)
    Score[index] = Decimal.Parse(arrString[index]);
于 2013-04-15T16:25:57.700 回答
1

读取您的文件将返回字符串值。你需要投射它们。我建议将转换后的值存储在列表中,使用列表的 ToArray() 方法获取最大值和最小值,使用 Count 属性获取中间值:

String[] ScoreString = File.ReadAllLines("Scores.txt");
List<Decimal> ScoreList = new List<Decimal>();
Decimal mySum = 0;
foreach(string s in ScoreString)
{    ScoreList.Add(Convert.ToDecimal(s));
    mySum +=  Convert.ToDecimal(s);
}
decimal result = (mySum - ScoreList.ToArray().Max() - ScoreList.ToArray().Min())/(ScoreList.Count-2);
Console.Write(result);
于 2013-04-15T16:33:30.010 回答