69,70 질문이요 프로그래밍언어 코딩문제는 많은학습이필요한거같아요 ㅠ어렵네요 설명부탁드려요
안녕하세요 길벗수험서 운영팀입니다.
디버깅을 해야 풀수 있는 문제인데
디버깅을 글로 설명하기가 힘드네요
69번 문제의 경우
x가 7입니다.
while 에서 조건이 x-- > 0 이렇게 되어있으니
x가 7일때, 6일때, 5일때, 4일때, 3일때, 2일때, 1일때 반복문을 실행합니다
맨처음에 x가 7이라는 값을 가지고 7 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 6이 됩니다
x가 6을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 참이되고
조건이 참일때 continue를 만나 반복문 처음으로 이동합니다
x가 6이라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 6 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 5가 됩니다
x가 5을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 5라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 5 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 4가 됩니다
x가 4를 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 4라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 4 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 3이 됩니다
x가 3을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 참이되고
조건이 참일때 continue를 만나 반복문 처음으로 이동합니다
x가 3이라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 3 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 2가 됩니다
x가 2를 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 2라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 2 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 1이 됩니다
x가 1을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 1이라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 1 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 0이 됩니다
x가 0을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 참이되고
조건이 참일때 continue를 만나 반복문이 종료가 됩니다
이때 y++를 4번 실행이 되니 결과는 4가 출력될것입니다
70번 문제는 포인터 표기방법으로 문제가 출제된것입니다
반복문을 보시면 i는 5부터 1씩 감소하면서 i가 0보다 큰동안 반복실행되니
i는 5,4,3,2,1 의 값을 같습니다.
출력문에 보면 *(s+i) 라고 되어있으니
*(s+5), *(s+4),*(s+3),*(s+2),*(s+1) 위치의 값들이 출력되어
ogani 의 값이 출력됩니다
행복한 하루되세요 :)
-
관리자2025-08-20 19:16:17
안녕하세요 길벗수험서 운영팀입니다.
디버깅을 해야 풀수 있는 문제인데
디버깅을 글로 설명하기가 힘드네요
69번 문제의 경우
x가 7입니다.
while 에서 조건이 x-- > 0 이렇게 되어있으니
x가 7일때, 6일때, 5일때, 4일때, 3일때, 2일때, 1일때 반복문을 실행합니다
맨처음에 x가 7이라는 값을 가지고 7 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 6이 됩니다
x가 6을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 참이되고
조건이 참일때 continue를 만나 반복문 처음으로 이동합니다
x가 6이라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 6 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 5가 됩니다
x가 5을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 5라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 5 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 4가 됩니다
x가 4를 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 4라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 4 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 3이 됩니다
x가 3을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 참이되고
조건이 참일때 continue를 만나 반복문 처음으로 이동합니다
x가 3이라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 3 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 2가 됩니다
x가 2를 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 2라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 2 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 1이 됩니다
x가 1을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 거짓이되고
조건이 거짓일때 y++를 만납니다.
x가 1이라는 값을 가지고 while 에서 조건이 x-- > 0 을 만나 1 > 0 을 비교하고
x-- 후치연산으로 되어있으니 if문으로 내려갈때 x는 0이 됩니다
x가 0을 가지고 있으니 if 조건식에서 x%3 == 0 을 비교하면 참이되고
조건이 참일때 continue를 만나 반복문이 종료가 됩니다
이때 y++를 4번 실행이 되니 결과는 4가 출력될것입니다
70번 문제는 포인터 표기방법으로 문제가 출제된것입니다
반복문을 보시면 i는 5부터 1씩 감소하면서 i가 0보다 큰동안 반복실행되니
i는 5,4,3,2,1 의 값을 같습니다.
출력문에 보면 *(s+i) 라고 되어있으니
*(s+5), *(s+4),*(s+3),*(s+2),*(s+1) 위치의 값들이 출력되어
ogani 의 값이 출력됩니다
행복한 하루되세요 :)