배열 질문좀요 컴파일은 되는데요
타키
질문 제목 : 컴파일은 되는데 , 왜 저렇게 코드가 쓰이는지 궁금해요제가 궁금한 것은
char str[3][5]중에 [5]는 왜 붙는지 이해가 안 가구요
int score[3][3]이 왜 [3][3]이 붙는지 이해가 안 가네요
그리고 마지막으로
printf(%d번 학생의 %s점수 : %d\n,i,str[j],score[i][j]);
중에서 i,str[j],score[i][j]가 어떻게 쓰이는 건지 잘 모르겠네요..
질문 내용 :
#includestdio.h
#includestdlib.h
int main()
{
char str[3][5]={국어,영어,수학};
int score[3][3]={{10,20,30},{20,30,40},{40,50,60}};
int i, j;
for(i=0; i3; i=i+1)
{
for(j=0; j3; j=j+1)
{
printf(%d번 학생의 %s점수 : %d\n,i,str[j],score[i][j]);
}
printf(\n);
}
system(pause);
}
이중 루프로 출력하는 부분만 보도록 하지요
printf(%d번 학생의 %s 점수 : %d\n,i,str[j],score[i][j]);
처음 i 와 j 가 0 일때
i 는 학생 번호니까 바로 사용 하면 되고요
str[0] 은 국어, str[1] 은영어, str[2] 는 수학 이지요?
j 를 문자형 변수 2차원 배열 str[][]첫번째 첨자로 사용 하면 되지요?
i 는 학생 번호 j 는 과목이니까
정수형 변수 2차원 배열 score[][] 에 첫번째 첨자로 i 를 두번째 첨자로 j 를 줘서 출력 하면 됩니다
인데요
제가 궁금한 것은
char str[3][5]중에 [5]는 왜 붙는지 이해가 안 가구요
int score[3][3]이 왜 [3][3]이 붙는지 이해가 안 가네요
그리고 마지막으로
printf(%d번 학생의 %s점수 : %d\n,i,str[j],score[i][j]);
중에서 i,str[j],score[i][j]가 어떻게 쓰이는 건지 잘 모르겠네요..
-
라미
감사합니다^^
-
이송이
char str[5]는 문자 5개를 기억하는 공간입니다. 한글 한 글자는 두 바이트를 차지합니다. C언어에서는 문자열의 끝에 문자열의 끝을 나타내는 0이 항상 들어가야 됩니다.
따라서 \국어\를 저장하려면 2 + 2 + 1 이렇게 5바이트가 필요합니다.
이런게 3개 필요하므로 char str[3][5]로 선언하는 것입니다. -
마호
뒤에붙는건 2차열배열입니다 다시책보시길바랍니다