안녕하세요.
두 가지 질문이 있습니다.
Q1. 267쪽
C언어 코드 하단 14번에 while ( j < 8 - i ); 이렇게 적혀있는데,
왜 9가 아닌 8인가요??
Do~while 문이라서 무조건 한번실행 후 while문을 벗어나므로, 8-i가 되는 것인가요?
Q2. 345쪽 차트
i 반복문 안 8번이 i >= 3 이 답인 것은 이해가 갑니다.
3이 'INT(i/2)+1' 즉 행의 1/2로 대체 될 수는 없는 건가요??
만약 대체 될 수 없는 이유가 주어진 배열이 5행5열(A[5][5])으로 정해져 있어서라면,
주어진 배열이 N행N열일 경우(A[N][N])엔 'INT(i/2)+1'이 답이 될 수 있나요?
안녕하세요.
1)
배열의 위치가 0부터 시작하므로 배열은 DATA[0] ~ DATA[9]까지 입니다.
또한 배열의 값을 비교할 때 DATA[0]과 DATA[1]과 같이 현재 j와 j+1의 자리를 비교합니다.
그러므로 j가 8일 때 DATA[8]은 DATA[9]와 비교하므로 j를 8까지만 수행하면 됩니다.
i가 0일 때 j도 0이므로
Data[0] ~ Data[8]까지 비교 기준을 잡게 됩니다.
2)
해당 부분에 괄호가 있다면 둘 다 가능합니다.
이런 경우 정답의 범위를 제한 하기 위해 상수로 입력하라 혹은 변수로 입력하라는 지시가 있을 수 있습니다.
상수로만 답을 해야 하는 경우에는 3을 해야 하고 변수와 함께 답을 작성하라고 하면 int(n/2)+1로 할 수 있습니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-24 17:09:39
안녕하세요.
1)
배열의 위치가 0부터 시작하므로 배열은 DATA[0] ~ DATA[9]까지 입니다.
또한 배열의 값을 비교할 때 DATA[0]과 DATA[1]과 같이 현재 j와 j+1의 자리를 비교합니다.
그러므로 j가 8일 때 DATA[8]은 DATA[9]와 비교하므로 j를 8까지만 수행하면 됩니다.
i가 0일 때 j도 0이므로
Data[0] ~ Data[8]까지 비교 기준을 잡게 됩니다.
2)
해당 부분에 괄호가 있다면 둘 다 가능합니다.
이런 경우 정답의 범위를 제한 하기 위해 상수로 입력하라 혹은 변수로 입력하라는 지시가 있을 수 있습니다.
상수로만 답을 해야 하는 경우에는 3을 해야 하고 변수와 함께 답을 작성하라고 하면 int(n/2)+1로 할 수 있습니다.
오늘도 즐거운 하루 되세요.