第6講 配列
第8話 成績一覧表に平均を加える
成績一覧表
実現するプログラム例
#include<stdio.h> //prinf()を使えるようにするためにインクルード
#include<stdlib.h> //rand()を使用できるようにインクルード
#include <time.h> //time()を使用できるようにインクルード
void f();
int main() {
f();
return(0);
}
void f() {
int a[3][10][6]; //最初の添え字は学期、2番目の添え字は出席番号、3番目は各教科に対応
float h[3][10]; //平均点を収納する箱
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]; //合計点の算出
}
h[i][j] = (float)a[i][j][5] / 5; //平均点の算出
}
}
//結果表示
for (i = 0; i < 3; i++) {
printf("%d学期\n", i + 1);
printf("出席番号 国語 社会 数学 理科 英語 合計 平均\n");
for (j = 0; j < 10; j++) {
if (j+1<10)printf(" %d ", j + 1); else printf(" %d ", j + 1);
for (k = 0; k < 6; k++) {
if(a[i][j][k]<10)printf(" %d ",a[i][j][k]);
if (a[i][j][k]>=10 && a[i][j][k]<100)printf(" %d ", a[i][j][k]);
if(a[i][j][k] >= 100)printf("%d ", a[i][j][k]);
}
printf("%.1f", h[i][j]);
printf("\n");
}
printf("\n");
}
}
以上で配列の学習は終了とします。
第7講ではC言語やC++を大変魅力的なものにしているポインタについて学習します。