Console.Write ("How many students do you have?: ");
student = Convert.ToInt32 (Console.ReadLine());
int[] numberOfStudents = new int[student];
for (int i = 1; i <= numberOfStudents.Length; i++) {
Console.Write ($"Enter student {i}'s current grade: ");
numberOfStudents [i] = Convert.ToInt16 (Console.ReadLine());
}
int sum = 0;
for(int i = 0; i < numberOfStudents.Length; i++)
{
sum += numberOfStudents[i];
}
average = sum/numberOfStudents.Length;
Console.WriteLine ($"Your student average is {average}.");
Console.ReadLine();
基本的に、ユーザーは学生の数を入力し、それによって配列の長さが決まります。 forループは、後で平均が計算されるすべてのマークを集めます。c#マークの平均計算問題
の長さが5の場合、forループが5回目になると生徒のマークが尋ねられますが、合計を取得して平均を計算する代わりに入力すると、system.indexoutofrange
エラー。
ありがとうございました!
配列はC#でゼロベースです。 * for * forループ( 'for(int i = 0; i
最初のforループは1から始まります。これをゼロベースに変更する必要があります。 – Yobik
同じ変数を2つの異なる目的で使用しています。あなたは学生数の配列を持っています。各生徒にはグレードの配列が必要です。 2つの配列の長さは異なっていてもよい。あなたのコードをもう一度見てください。 – jdweng