2차원 배열을 1차원 배열로 구현하여 2차원 배열이 유용한 이유를 더 깊이 이해하기 위함
#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
int main(void) {
int villa[10];
/*1호라인 거주인원 입력*/
for (int i = 1; i <= 4; i++) {
printf("1호라인 %d층 : ",i);
scanf("%d", &villa[i]);
}
/*2호라인 거주인원 입력*/
for (int j = 1; j <= 4; j++) {
printf("2호라인 %d층 : ",j);
scanf("%d", &villa[4 + j]);
}
printf("\n\n\n-------------------------------------------------\n\n\n");
/*층별 인구수 (1호 2호 라인의 합)*/
for (int k = 1; k <= 4; k++) {
printf("%d층 합 : %d\n\n", k, (villa[k] + villa[k + 4]));
}
return 0;
}
# include <stdio.h>
int main(void) {
int arr[3][9];
int i, j;
for(i=2; i<=4 ; i++){
printf("\n\n");
for (j = 1; j <= 9; j++) {
arr[i-2][j-1] = i * j;
printf("%d ", arr[i - 2][j - 1]);
}
}
return 0;
}
내 코드는 답지의 코드와 달리 너무 복잡해보였다. 나는 구구단을 2차원 배열에 입력과 동시에 출력을 하였다. 아래는 답지의 코드이다.
# include <stdio.h>
int main(void) {
int arr[3][9];
int i, j;
/*구구단을 저장하자*/
for (i = 0; i < 3; i++)
for (j = 0; j < 9; j++)
arr[i][j] = (i + 2) * (j + 1);
/*출력하자*/
for (i = 0; i < 3; i++)
{
for (j = 0; j < 9; j++)
printf("%4d", arr[i][j]);
printf("\n");
}
return 0;
}
for문의 조건식을 작성할 땐, 최대한 초기식을 0에 근접하게 하는 것이 더 깔끔한 코드가 될 것이라고 깨달았다.
#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
int main(void) {
int arrA[2][4] = { { 1,2,3,4 }, { 5, 6, 7, 8 } };
int arrB[4][2];
int i, j;
/*arrB를 초기화*/
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++)
arrB[j][i] = arrA[i][j];
}
/*arrB를 출력*/
for (i = 0; i < 4; i++) {
for (j = 0; j <2; j++)
printf("%4d", arrB[i][j]);
}
}