[배열]구구단 출력 ■ 가로의 길이가 9, 세로의 길이가 3인 2차원 배열선 후 2~4단을 저장하여 출력 int main(void) { int dan[3][9] = { {2, 4, 6, 8, 10, 12, 14, 16, 18}, {3, 6, 9, 12, 15, 18, 21, 24, 27}, {4, 8, 12, 16, 20, 24, 28, 32, 36} }; int i, j; for(i=0; i<3; i++) { printf("%4d단\n", *dan[i]); //★4는 우측 정렬 지시 for(j=0; j<9; j++) { printf("%4d", dan[i][j]); //★4는 우측 정렬 지시 } printf("\n"); } return 0; }
출력 결과
2단
  2   4   6   8   10   12   14   16   18
3단
  3   6   9  12   15   18   21   24   27
4단
  4   8  12  16   20   24   28   32   36
--------------------교과서 정답---------------------------------------- ■ 값 변경의 바른 참조 문제 int main(void) { int dan[3][9]; int i, j; for(i=0; i<3; i++) { for(j=0; j<9; j++) { dan[i][j] = (i+2) * (j+1); } } for(i=0; i<3; i++) { for(j=0; j<9; j++) { printf("%4d", dan[i][j]); //★4는 우측 정렬 지시 } printf("\n"); } return 0; }
출력 결과
  2   4   6   8   10   12   14   16   18
  3   6   9  12   15   18   21   24   27
  4   8  12  16   20   24   28   32   36
---------------------변형-------------------- int main(void) { int dan[3][9]; int i, j; for(i=0; i<3; i++) { for(j=0; j<9; j++) { dan[i][j] = (i+2) * (j+1); // I: +2 짝수, J: 1부터 printf("%4d", dan[i][j]); //★4는 우측 정렬 지시 } printf("\n"); } return 0; } ---------------------------------------------