프로그램은 다음과 같이 성명, 중간, 기말, 총점, 평균, 석차를 구하는 문제이다.
이것만 봤을 때 딱 필요한 변수는
이 두가지가 필요하다.
정수형 배열은 5행 5열이다. 담을 변수가 5개, 사람 수가 5명이기 때문.
char name[5][10] = { "강감찬", "김유신", "김시민", "이순신", "홍길동" };
int jum[5][5] = { {85, 75}, {95, 88}, {95, 88}, {99, 98}, {73, 64} };
가장 먼저 성적을 배열에 담아둔다.
char name[5][10] 에서 왜 10이나 들어가냐면, 한글 이름의 바이트 수는 2로 측정이 되기에 좀 더 크게 설정한 것이다.
총점과 평균을 구하는 알고리즘이다.
// 총점과 평균
for (i = 0; i < 5; i++) { // 사람 수만큼 반복
jum[i][2] = 0; // 초기값 설정
for (j = 0; j < 2; j++) // jum[i][2] = jum[i][0]+jum[i][1];
jum[i][2] += jum[i][j]; // 총점을 담는다
jum[i][3] = jum[i][2] / 2; // 평균을 구한다
}
다음은 석차를 구하는 알고리즘이다.
// 석차
for (i = 0; i < 5; i++) { // 사람 수만큼 반복
jum[i][4] = 1; // 나는 1등이야
for (j = 0; j < 5; j++) // 모든 친구들의 총점과 비교
if (jum[i][2] < jum[j][2]) jum[i][4]++; //
}