私はTAFEで勉強していますが、クラスと自分自身は私の講師から全く助けを得ていません。c#テキストファイルを読むmin min average averageを探す
私はtxtファイルから読み込み、それから最小最大値と平均値を見つけてそれをコンソールに出力する必要があります。
以前の練習では、配列からmin max averageを得ることができましたが、これを書いても問題ありません。私はVS2012を使用しています。
私は、テキストファイルを読み込んでコンソールに出力するコードを書いていますが、min maxとaverageを見つけることができません。私は "オブジェクトのインスタンスに設定されていないオブジェクト参照"を取得します。私はプログラムを実行します。
配列からmin maxの平均値を求めるのに同じコードを使用していますが、これは問題だと感じていますが、私はそれを解決できません!!
はここで、配列のための私のコード...これが正常に動作述べたように
static void Main(string[] args)
{
int[] hoursArray = { 1, 24, 9, 7, 6, 12, 10, 11, 23, 8, 2, 9, 8, 8, 9, 7, 9, 15, 6, 1, 7, 6, 12, 10, 11, 23, 1, 2, 9, 8 };
for (int i = 0; i < hoursArray.Length; i++)
{
Console.WriteLine(hoursArray[i].ToString());
}
{
{
int low = hoursArray[0];
for (int index = 1; index > hoursArray.Length; index++)
{
if (hoursArray[index] < low)
{
low = hoursArray[index];
}
}
Console.WriteLine("Lowest Hours Parked = " + low);
int high = hoursArray[0];
for (int index = 1; index < hoursArray.Length; index++)
{
if (hoursArray[index] > high)
{
high = hoursArray[index];
}
}
Console.WriteLine("Highest Hours Parked = " + high);
int total = 0;
double average = 0;
for (int index = 0; index < hoursArray.Length; index++)
{
total = total + hoursArray[index];
}
average = (double)total/hoursArray.Length;
Console.WriteLine("Average Hours Parked =" + average.ToString("N"));
Console.ReadLine();
}
}
}
}
}
です。今、私の問題... のために私は、ファイルの内容を読み込んでint
にそれらを変換するために...
static void Main(string[] args)
{
StreamReader hours = new StreamReader("hours.txt");
string number = "";
while (number != null)
{
number = hours.ReadLine();
if (number != null)
Console.WriteLine(number);
}
//list of numbers above is all ok when running program
int total = 0;
double average = 0;
for (int index = 0; index < number.Length; index++)
{
total = total + number[index];
}
average = (double)total/number.Length;
Console.WriteLine("Average = " + average.ToString("N2"));
int high = number[0];
for (int index = 0; index < number.Length; index++)
{
if (number[index] > high)
{
high = number[index];
}
}
Console.WriteLine("Highest number = " + high);
int low = number[0];
for (int index = 0; index > number.Length; index++)
{
if (number[index] < low)
{
low = number[index];
}
}
Console.WriteLine("Lowest number = " + low);
hours.Close();
Console.ReadLine();
}
}
}
コードの2番目のチャンクでの問題は、あなたが数字で読むが、どこにでもそれらを格納いけないので、いいえ、あなたがそれらを使用するカント後で。あなたは数字にすべてを読み込みます(あなたのファイルの途中で誰も猫を書かなかったと仮定します)。しかし、配列やリストに入れないでください。これをヒントとして取り、これが助けになるかどうかを確認してください – BugFinder
最初の数値のみを文字列変数に格納していて、その文字列の文字をループして合計値を計算します。代わりにリストを作成し、最初の行(条件は変更する必要があります)だけでなくすべての行を読み込み、各行の文字列を整数にキャストし、リスト(または配列)に整数を格納します。 –