picture from Shutterstock
전에 만든 성적 입/출력을 다차원으로 만들어 더욱 편하게 코딩을 할 수있게 하였습니다.
(메인 함수)
(이전 코드와 비교) (입력 함수)
메인함수입니다. 전의 코딩과 별반 다를게 없으나, 메모리 동적할당(24~26)을 다차원으로 하였습니다.
cs
cs
cs
(이전 코드와 비교)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
void input(char *p_name, int *p_score, float *p_avg, int num) { //정보 입력
for (int i = 0; i < num; i++) {
cout << "이름을 입력하세요" << endl;
cin >> p_name ;
p_score[3] = 0;
for (int j = 0; j < 3; j++) {
cout << "성적을 입력하세요(국어, 영어, 수학)" << endl;
cin >> p_score[j];
p_score[3] += p_score[j];
}
p_avg[0] = p_score[3] / 3.f;
p_name += 10;
p_score += 4;
p_avg += 1;
}
}
|
cs |
(출력 함수)
1
2
3
4
5
6
7
8
9 |
void output(char (*p_name)[10], int (*p_score)[4], float *p_avg, int num) { //정보 출력
for (int i = 0; i < num; i++) {
cout << "이름 : " << p_name[i] << endl;
for (int j = 0; j < 4; j++) {
cout << "\t" << p_score[i][j];
}
cout << "\t" << p_avg[i] << endl;
}
} |
cs |
(이전 코드와 비교)
1
2
3
4
5
6
7
8
9
10
11
12 |
void output(char *p_name, int *p_score, float *p_avg, int num) { //정보 출력
for (int i = 0; i < num; i++) {
cout << "이름 : " << p_name << endl;
for (int j = 0; j < 4; j++) {
cout << "\t" << p_score[j];
}
cout << "\t" << *p_avg << endl;
p_score += 4;
p_name += 10;
p_avg += 1;
}
} |
cs |
이전 코드와 비교했을 겨우 다차원으로 프로그래밍 했을 때 코드도 짧아지고 데이터 할당도 더 편하게 할 수 있는것을 알 수 있습니다.
'Programming > C++' 카테고리의 다른 글
(C++) 복사생성자 함수란 무엇일까? (1) | 2018.03.08 |
---|---|
(C++) 생성자 함수란 무엇일까? (0) | 2018.03.08 |
(C++) 오버로딩(overloading)이란?? (0) | 2018.03.07 |
(C++) \t, 공백 언제까지 다 치고있을건가요? (setw) (3) | 2018.03.06 |
(C++) 성적 입/출력 프로그램 (0) | 2018.03.06 |