2 次元配列(複数クラスの試験)

プログラム例 5.3] 2 次元配列(複数クラスの試験)

/****************************/
/* 平均点以下の人数         */
/*      coded by Y.Suganuma */
/****************************/
#include 

int main()
{
			// データの入力と全体平均の計算
	int n;
	printf("クラス数は? ");
	scanf("%d", &n);
	int *m      = new int [n];   // 各クラスの人数
	int **x     = new int* [n];
	int mm      = 0;   // 全体の人数
	double mean = 0;
	for (int i1 = 0; i1 < n; i1++) {
		printf("%d 番目のクラスの人数は? ", i1+1);
		scanf("%d", &m[i1]);
		x[i1] = new int [m[i1]];
		mm   += m[i1];
		for (int i2 = 0; i2 < m[i1]; i2++) {
			printf("   クラス%d の %d 番目の人に点数は? ", i1+1, i2+1);
			scanf("%d", &x[i1][i2]);
			mean += x[i1][i2];
		}
	}
	mean /= mm;
			// 各クラスの平均点以下の人数
	for (int i1 = 0; i1 < n; i1++) {
		int ct = 0;
		for (int i2 = 0; i2 < m[i1]; i2++) {
			if (x[i1][i2] <= mean)
				ct++;
		}
		printf("クラス%d における平均点以下の人数: %d 人\n", i1+1, ct);
	}

	return 0;
}