第6講 配列
第7話 成績一覧表に合計を加える
成績一覧表
を実現するプログラム例
//以下C#を始めるためのお呪い
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//以上C#を始めるためのお呪い
namespace a //初心者はお呪い=決まり事と思い一切気にしない
{
class Program //初心者はお呪い=決まり事と思い一切気にしない
{
static void Main(string[] args) //私は社長だ。
{
f();
}
static void f()
{
int[,,] a = new int[3, 10, 7]; //3次元配列
int i, j, k; //for文の制御変数
Random r = new Random();
for (i = 0; i < 3; i++)
{
for (j = 0; j < 10; j++)
{
a[i, j, 0] = j + 1; //出席番号入力
}
}
//以下各教科ランダムデータ入力
for (i = 0; i < 3; i++)
{
for (j = 0; j < 10; j++)
{
for (k = 1; k < 6; k++)
{
a[i, j, k] = r.Next(100);
}
}
}
//以上各教科ランダムデータ入力
//以下合計点算出
for (i = 0; i < 3; i++)
{
for (j = 0; j < 10; j++)
{
a[i, j, 6] = 0; //合計点初期化
for (k = 1; k < 6; k++)
{
a[i, j, 6] += a[i, j, k]; //合計点累積
}
}
}
//以上合計点算出
//以下結果表示
for (i = 0; i < 3; i++)
{
Console.WriteLine("{0:d}学期", i + 1);
Console.WriteLine("出席番号 国語 社会 数学 理科 英語 合計");
for (j = 0; j < 10; j++)
{
if (a[i, j, 0] < 10) Console.Write(" {0:d} ", a[i, j, 0]);
if (a[i, j, 0] >= 10) Console.Write(" {0:d} ", a[i, j, 0]);
for (k = 1; k < 7; k++)
{
if (a[i, j, k] < 10) Console.Write(" {0:d} ", a[i, j, k]);
if (a[i, j, k] >= 10) Console.Write(" {0:d} ", a[i, j, k]);
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
}
//以上結果表示
}
}
}
さらに、
float h[3][10]; //平均点を収納する箱
を加えて平均も算出して表示させましょう。
算出する際にキャストを使う必要があります。
つまり、int型を強制的にfloat型に変更する必要があります。