오답노트

[예제] 이중배열 포인터 예제 본문

C,C++/[국비지원] C,C++프로그래밍

[예제] 이중배열 포인터 예제

권멋져 2021. 4. 3. 14:30
//학생수 와 학생의 수강과목수 그리고 과목 당 점수에 대한 평균 예제

int main()
{
	int nStudent, nMaj;
	printf("학생수를 입력하세요: ");
	scanf("%d", &nStudent);

	printf("-------------------------\n");
	int** nScore;
	double* dbAvg;
	nScore = (int**)malloc(sizeof(int*) * nStudent);

	for (int i = 0; i < nStudent; i++)
	{
		printf("%d번째 학생의 수강과목 수 : ", i + 1);
		scanf("%d", &nMaj);
		nScore[i] = (int*)malloc(sizeof(int) * nMaj);
		dbAvg = (double*)malloc(sizeof(double) * nStudent);
		dbAvg[i] = 0;
		printf("%d번째 학생의 점수 (%d개) : ", i + 1, nMaj);
		for (int j = 0; j < nMaj; j++)
		{
			scanf("%d", &nScore[i][j]);
			dbAvg[i] += (double)nScore[i][j];
		}
		dbAvg[i] = dbAvg[i] / nMaj;
	}

	printf("-------------------------\n");

	for (int i = 0; i < nStudent; i++)
	{
		printf("%d번째 학생의 평균 : %f", i + 1, dbAvg[i]);
		free(nScore[i]);
	}

	free(dbAvg);
	free(nScore);
    
    return 0;
 }