第6講 配列
第7話 成績一覧表に合計を加える
成績一覧表
を実現するプログラム例
#include<iostream> //入出力のために組み込む
#include <ctime> //time()を使用できるようにインクルード
using namespace std; //coutを使えるようにするために必要
void f();
int main() {
f();
return(0);
}
void f() {
int a[3][10][6]; //最初の添え字は学期、2番目の添え字は出席番号、3番目は各教科に対応
int i, j, k; //for文の制御変数
srand((unsigned)time(NULL)); //乱数の系列決定するシード値を現在時刻から取得
//ランダムデータ発生
for (i = 0; i < 3; i++) {
for (j = 0; j < 10; j++) {
for (k = 0; k < 5; k++) {
a[i][j][k] = rand() % 100 + 1;
}
}
}
//合計点の算出
for (i = 0; i < 3; i++) {
for (j = 0; j < 10; j++) {
a[i][j][5] = 0; //0に初期化
for (k = 0; k < 5; k++) {
a[i][j][5] += a[i][j][k];
}
}
}
//結果表示
for (i = 0; i < 3; i++) {
cout << i + 1 << "学期" << endl;
cout << "出席番号 国語 社会 数学 理科 英語 合計" << endl;
for (j = 0; j < 10; j++) {
if (j + 1<10)cout << " " << j + 1 << " "; else cout << " " << j + 1 << " ";
for (k = 0; k < 6; k++) {
if (a[i][j][k]<10)cout << " " << a[i][j][k] << " ";
if (a[i][j][k] >= 10 && a[i][j][k]<100)cout << " " << a[i][j][k] << " ";
if (a[i][j][k] >= 100)cout << a[i][j][k] << " ";
}
cout << endl; //改行
}
cout << endl; //改行
}
}
さらに、
float h[3][10]; //平均点を収納する箱
を加えて平均も算出して表示させましょう。
算出する際にキャストを使う必要があります。
つまり、int型を強制的にfloat型に変更する必要があります。