◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
// 2차 배열을 함수의 인자로 전달하기. // 1. int (*stu)[MAX] : int[MAX]타입의 주소를 가지는 포인터 변수 선언. -> int stu[][MAX]와 동일하다. // 2. int* stu[MAX] : int*타입을 요소로 가지는 MAX크기의 배열 선언. #includeusing namespace std; #define MAX 4 int total(int sub[], int num); double ave(int sub[], int num); //void print(int (*stu)[MAX], int row, int col) void print(int stu[][MAX], int row, int col); char subject[][5]={"국어", "영어", "수학", "C++"}; void main( ) { //5학생 4과목 점수 int student[][MAX]={{100, 90,80,95},{97, 98, 99, 87},{100, 98,78,98},{78, 89,76, 98},{90, 100, 87, 86}}; //cout << sizeof(student) << " " << sizeof(student[0]) << endl; int row = sizeof(student) / sizeof(student[0]); //학생수 int col = sizeof(student[0]) / sizeof(student[0][0]); //과목수 print(student, row, col); // 모두 같은 주소. cout << student << endl; cout << student[0] << endl; cout << &student[0][0] << endl; } int total(int sub[], int num) { int tot=0; for(int i=0; i < num; i++) { tot+= sub[i]; } return tot; } double ave(int sub[], int num) { return total(sub, num) / (double)num; } void print(int stu[][MAX], int row, int col) { cout << "번호\t"; for(int i=0; i < col; i++) { cout << subject[i] << "\t"; } cout << "총점\t" << "평균" << endl; for(int j=0; j < row; j++) { cout << (j+1) << "\t"; for(int k=0; k < col; k++) { cout << stu[j][k] << "\t"; } cout << total(stu[j], col) << "\t"; cout << ave(stu[j], col) << endl; } }