해설 디버깅에서 j가 2일때
i는 4 [i]는 3 이고
i는 3 [i]는 3 인데 왜 여기도 3인가요
추가 질문 129쪽 52번 문제
해설 디버깅에서 a가 1일때 a%2가 1이 아닌데
디버깅에서는 왜 1로 표시되어 있나요.
안녕하세요. 길벗 수험서 운영팀입니다.
배열 numAry[i]와 numAry[j]에 각 수치를 넣어서 비교해보면 쉽게 알 수 있습니다.
디버깅표 j가 3일 때, numAry[3] = numAry[3] + numAry[4]를 수행하면서 numAry[3]에 3을 저장했기 때문입니다.
즉, j가 3일 때는
numAry[3] = numAry[3] + numAry[4]
j가 2일 때는
numAry[2] = numAry[2] + numAry[4]
numAry[2] = numAry[2] + numAry[3]
j가 1일 때는
numAry[1] = numAry[1] + numAry[4]
numAry[1] = numAry[1] + numAry[3]
numAry[1] = numAry[1] + numAry[2]
j가 0일 때는
numAry[0] = numAry[0] + numAry[4]
numAry[0] = numAry[0] + numAry[3]
numAry[0] = numAry[0] + numAry[2]
numAry[0] = numAry[0] + numAry[1]
을 수행합니다.
----------------------------------------------
추가 질문에 대한 것은 나머지 계산에 대해 잘못 알고 계신 것입니다.
%로 나머지를 구하는 나눗셈은 소수점을 구하지 않습니다. 만약 소수점을 구하게 되면 어떤 수를 나누더라도 나머지는 발생하지 않게 되죠. 3 나누기 2를 하면 1.5가 되는 것처럼 말이죠.
나머지 계산(%)에서 작은 수를 큰 수로 나눌 때, 소수점 계산을 하지 않는다면 몫은 0, 나머지는 작은 수가 됩니다. 즉, i값이 1일때, "if(i%2 == 1)"은 참이 됩니다.
행복한 하루되세요.^^
-
*2018-09-18 10:22:15
안녕하세요. 길벗 수험서 운영팀입니다.
배열 numAry[i]와 numAry[j]에 각 수치를 넣어서 비교해보면 쉽게 알 수 있습니다.
디버깅표 j가 3일 때, numAry[3] = numAry[3] + numAry[4]를 수행하면서 numAry[3]에 3을 저장했기 때문입니다.
즉, j가 3일 때는
numAry[3] = numAry[3] + numAry[4]
j가 2일 때는
numAry[2] = numAry[2] + numAry[4]
numAry[2] = numAry[2] + numAry[3]
j가 1일 때는
numAry[1] = numAry[1] + numAry[4]
numAry[1] = numAry[1] + numAry[3]
numAry[1] = numAry[1] + numAry[2]
j가 0일 때는
numAry[0] = numAry[0] + numAry[4]
numAry[0] = numAry[0] + numAry[3]
numAry[0] = numAry[0] + numAry[2]
numAry[0] = numAry[0] + numAry[1]
을 수행합니다.
----------------------------------------------
추가 질문에 대한 것은 나머지 계산에 대해 잘못 알고 계신 것입니다.
%로 나머지를 구하는 나눗셈은 소수점을 구하지 않습니다. 만약 소수점을 구하게 되면 어떤 수를 나누더라도 나머지는 발생하지 않게 되죠. 3 나누기 2를 하면 1.5가 되는 것처럼 말이죠.
나머지 계산(%)에서 작은 수를 큰 수로 나눌 때, 소수점 계산을 하지 않는다면 몫은 0, 나머지는 작은 수가 됩니다. 즉, i값이 1일때, "if(i%2 == 1)"은 참이 됩니다.
행복한 하루되세요.^^