코딩시 질문이여!!
휘들램
#include stdio.h
int main(void)
{
int gugudans[8][9];
int dan, nun;
for( dan = 2; dan =9; dan++ )
{
for( nun = 1; nun = 9; nun++ )
gugudans[dan-2][nun-1] = dan * nun;
// 여기서 dan과 nun에 2와 1을 왜 빼는겁니까????
}
for( dan = 2; dan =9; dan++ )
{
for( nun = 1; nun = 9; nun++ )
printf( %d x %d = %d\n, dan, nun, gugudans[dan-2][nun-1] );
printf( \n );
}
return 0;
}
-
떠나간그놈
감사합니다^^
많이 도움 됐네요.ㅎ -
헛매질
8 x 9 크기의 배열을 선언했기 때문입니다.
int gugudans[8][9];
위와 같이 배열을 선언하면, 배열 첨자의 유효 범위는 각각 0~7, 0~8 입니다.
그러니까, gugudans[8][9]는 유효하지 않다는 것입니다.
그래서, 2단은 [0][n]에, 3단은 [1][n], 9단은 [7][n]에 대응시키기 위해서 값을 조정해 주는 것입니다.
만약 다음과 같이 선언한다면 첨자 값을 조정할 필요가 없습니다. 물론 사용되지 않고 낭비되는 배열 -
바나나맛사탕
구구단이라는 배열의 크기가 8x9 이므로 빼주는거네요.
그렇게 하지않으면 for문 안에서 구구단이라는 배열이 선언된크기를 벗어나버리기 때문입니다.