2차원 배열에 관한 질문 입니다.
고딩
질문 제목 :4 * 5배열을 사용하여 성적 관리 프로그램을 작성 하였습니다.
학생수는 3명, 과목수는 4과목으로 정하고
학생별, 과목별 점수를 입력하면 각각의 총점을 구하는 프로그램 입니다.
제가 프로그램을 작성하였는데 4번째 과목의 총점이 0으로 출력이 되는데 이유를 모르겠습니다.
제가 작성한 프로그램 입니다.
자세하게 가르쳐 주시면 감사드리겠습니다.
#include stdio.h
int record[4][5];
void RecordInput(void);
void RecordTotal(void);
void PrintAllData(void);
void main()
{
RecordInput();
RecordTotal();
PrintAllData();
record[3][4] = 0;
}
void RecordInput(void)//학생별 성적 입력
{
int p, s;
int per_total;
for(p=0; p3; p++)
{
per_total = 0;
printf(%d번째 학생 성적 입력 \n, p+1);
for(s=0; s4; s++)
{
printf(과목 %d: , s+1);
scanf(%d, &record[p][s]);
per_total+=record[p][s];
}
record[p][4]=per_total;
}
}
void RecordTotal(void)//과목별 성적 합게
{
int p, s;
int sbj_total = 0;
for(p=0; p3; p++)
{
sbj_total = 0;
for(s=0; s4; s++)
{
sbj_total+=record[s][p];
}
record[3][p]=sbj_total;
}
}
void PrintAllData(void)// 데이터 출력
{
int p, s;
for(p=0; p4; p++)
{
for(s=0; s5; s++)
{
printf(%4d , record[p][s]);
}
printf(\n);
}
}
-
헛소동
record[3][4]라고 배열을 선언하면
record[0][0]부터 record[2][3]까지 12개를 사용한다는 뜻입니다.
record[p][4]처럼 4를 사용하면 안 됩니다.