C언어 2차원 배열에 대한 질문 드립니다
-
게시물 수정 , 삭제는 로그인 필요
#include<stdio.h>
int main() {
int map[5][5] = {
{1, 5, 6, 7, 8},
{2, 4, 6, 4, 9},
{1, 5, 7, 4, 2},
{2, 3, 4, 5, 5},
{5, 2, 4, 1, 1}
};
int i = 0, j = 0;
int res = map[i][j];
while(1) {
if (i == 4 && j == 4) break;
else if (i == 4) j++;
else if (j == 4) i++;
else if (map[i+1][j] >= map[i][j+1]) j++;
else i++;
res += map[i][j];
}
printf("result: %d", res);
return 0;
}
정보처리 기능사를 공부하고 있습니다
정답과 해설지를 봐도 ai에게 질문해도 이해가 안되서 여쭤봅니다
디코딩 표에서 res 값이 1로 시작하는건 이해하였는데 왜 i 값이 증가 후 map[i+1][j]와 map[i][j+1]값 말고 바로 map[i][j]를 연산하고 i값이 2로 증가하였는데 왜 map[i+1][j] 의 값이 [3][0]이 아닌 [2][0] 이며 i 값이 3으로 증가 전 res 의 값이 공백인 이유는 무엇인가요?
int main() {
int map[5][5] = {
{1, 5, 6, 7, 8},
{2, 4, 6, 4, 9},
{1, 5, 7, 4, 2},
{2, 3, 4, 5, 5},
{5, 2, 4, 1, 1}
};
int i = 0, j = 0;
int res = map[i][j];
while(1) {
if (i == 4 && j == 4) break;
else if (i == 4) j++;
else if (j == 4) i++;
else if (map[i+1][j] >= map[i][j+1]) j++;
else i++;
res += map[i][j];
}
printf("result: %d", res);
return 0;
}
정보처리 기능사를 공부하고 있습니다
정답과 해설지를 봐도 ai에게 질문해도 이해가 안되서 여쭤봅니다
디코딩 표에서 res 값이 1로 시작하는건 이해하였는데 왜 i 값이 증가 후 map[i+1][j]와 map[i][j+1]값 말고 바로 map[i][j]를 연산하고 i값이 2로 증가하였는데 왜 map[i+1][j] 의 값이 [3][0]이 아닌 [2][0] 이며 i 값이 3으로 증가 전 res 의 값이 공백인 이유는 무엇인가요?
#c언어 2차원 배열 #c언어 2차원 배열 초기화 #c언어 2차원 배열 입력받기 #c언어 2차원 배열 동적할당 #c언어 2차원 배열 포인터 #c언어 2차원 배열 출력 #c언어 2차원 배열 매개변수 #c언어 2차원 배열 정렬 #c언어 2차원 배열 문자열 입력받기 #c언어 2차원 배열 입력