-1

現在、UNI の割り当てを行っていますが、テキスト ファイルの内容を Decimal/Double Array に取得する方法について非常に混乱しています。

それ自体が尋ねる質問は次のとおりです。「コンピューター プログラムは、データ ファイルから 12 のスコア (10 進数) を読み取り、それらを配列に格納し、中央の 10 のスコアの平均を計算する必要があります。つまり、最高と最低の12 のスコアは、平均計算に含まれません。」

私はそれに最善のショットを与えましたが、手短に言えば、このエラーを修正する方法がわかりません「string []をdecimal []に暗黙的に変換できません」文字列にのみ適用されます。

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 に答える