이번에 학원에서 2차원 배열을 배웠는데요.
5 * 5 배열을 만들고, 0으로 초기화를 하고
4 * 4 만큼 1~ 16까지 숫자를 채우고
각 각 04 14 24 34 44 에 양옆의 숫자를 다 더한 값이 출력 되게끔 만드는 코드 인데요
01 02 03 04 00 <- 총합
05 06 07 08 00 <- 총합
09 10 11 12 00 <- 총합
13 14 15 16 00 <- 총합
00 00 00 00 00
이런식으로요
#include "stdafx.h"
int main()
{
//값 입력 부분?
int arnData[5][5] = { 0 };
int nData = 0;
nData = 1;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
arnData[i][j] = nData;
nData++;
}
}
// 값 연산 부분
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
arnData[i][4] = arnData[i][4] + arnData[i][j];
}
}
//값 출력 부분
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
printf("%2d ", arnData[i][j]);
}
printf("\n");
}
return 0;
}
가운데 연산 부분에서 arnData[i][4] = arnData[i][4] + arnData[i][j]; 이부분이 이해가 안가네요.
arnData[i][4] = arnData[i][4] + arnData[i][j]; 에서 가운데 값을 arnData[i][3] 으로 변경하면 값이 8이 나오는데 이유를 모르겠어요
arnData[i][3] 의 값은 4인데 그러면 arnData[i][4] = arnData[i][3] + arnData[i][j]; arnData[i][4] 의 값은 4 + 1+2+3+4 해서 14 가 나와야 하는거 아닌가요?
arnData[i][3] 을 arnData[i][2] 로 변경했더니 값이 7이 나오네요..