책 내용 질문하기
후치 산술 연산관련하여 질문드립니다
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
483
조회수
1690
작성일
2019-03-06
작성자
탈퇴*원
첨부파일

만약에 코드가

 

#include <stdio.h>

 

main()

{

int i=10, hap=0;

    while(i>1)

{

i--;       //---------------------------------------A

if(i%3==1) //--------------------------------------B

hap +=i;//-----------------------------------------C

}                     // ----------------------------------------D

printf("%d\n", hap);

}

 

다음과 같다면

A의 후치 연산은 어느 시점에 이루어지는지 궁금합니다

제가 이해한건 A줄에서 ;으로 분기가 되었기 떄문에 

B부터 i에 1이 감소된 값으로 적용이 되어야 한다고 이해했는데

 

책에서 디버깅 표를 보니 

C까지 연산을 모두 한 이후에 연산을 적용해서 i에서 1이 감소하는 것으로 판단하더리구요

 

정확히 어느 시점에 후치 연산이 이루어지는지 궁금합니다

답변
2019-03-07 09:57:02

안녕하세요 길벗수험서 운영팀입니다.

 

코드는 정확히 이해하셨습니다.

 

A에서 i--; 는 단일 수식으로 i=i-1;이 수행되는 것과 다를바가 없습니다.

B에서는 i가 감소한 값을 if문으로 수행하겠죠.

 

오해하신 것이 있다면 디버깅표를 읽거나 쓰는 방법입니다.

 

일반적으로 디버깅 표는 코드 내에 변화하는 변수들의 값을 차례대로 나열하는 것에 불과합니다.

책에서는 종종 수험자들의 이해를 돕기위해 회전수에 맞춰 값들을 배치해주고는 하지만, 이것은 특별한 경우에만 사용할 수 있습니다.

(회전수가 일정하거나 중복회전이 발생하는 않는 경우 또는 한 회전 내에서 변수의 변화가 적은 경우)

 

만약 [문제3] 해설의 디버깅표를 회전수에 맞춰 열을 배치하게 되면,

 i  hap

10  0

9   

8

7   7

6

5

4  11

3

2

1  12

 

출력 : 12

이렇게 되겠지요.

 

행복한 하루되세요 :)

  • 관리자
    2019-03-07 09:57:02

    안녕하세요 길벗수험서 운영팀입니다.

     

    코드는 정확히 이해하셨습니다.

     

    A에서 i--; 는 단일 수식으로 i=i-1;이 수행되는 것과 다를바가 없습니다.

    B에서는 i가 감소한 값을 if문으로 수행하겠죠.

     

    오해하신 것이 있다면 디버깅표를 읽거나 쓰는 방법입니다.

     

    일반적으로 디버깅 표는 코드 내에 변화하는 변수들의 값을 차례대로 나열하는 것에 불과합니다.

    책에서는 종종 수험자들의 이해를 돕기위해 회전수에 맞춰 값들을 배치해주고는 하지만, 이것은 특별한 경우에만 사용할 수 있습니다.

    (회전수가 일정하거나 중복회전이 발생하는 않는 경우 또는 한 회전 내에서 변수의 변화가 적은 경우)

     

    만약 [문제3] 해설의 디버깅표를 회전수에 맞춰 열을 배치하게 되면,

     i  hap

    10  0

    9   

    8

    7   7

    6

    5

    4  11

    3

    2

    1  12

     

    출력 : 12

    이렇게 되겠지요.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.