책 내용 질문하기
p.63 문제5, p.65 제어문1
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
63
조회수
233
작성일
2019-05-08
작성자
탈퇴*원
1. p.63 문제5 float a = 123456789.0e-5f 가 %e 출력을 통해 1.2345678e+3 로 바뀔 때 마지막 숫자 9는 왜 짤리는 건가요? 2. p.65 제어문1 (사진 첨부) for(int i=1 ; i<=a ; ++i){...} 인 경우 i 값이 1증가한 후 루프 연산을 수행하는 것이 아닌가요? ++1일 때와 1++ 일 때 어떻게 다른지도 궁금합니다.
답변
2019-05-09 11:26:05

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

 

[1]

C언어에서 따로 지정자를 사용하지 않으면 소수점 자리는 무조건 6자리까지 반올림된 소수를 표시합니다.

즉, 본래 1.23456789e+3 이 출력되어야 하지만 소수점 6번째 자리까지 출력하기 위해 7번째 자리의 숫자인 8에서 반올림된 수가 앞의 6번째 자리의 숫자인 7에 +1을 해주어

1.234568e+3 이 출력되게 됩니다.

 

[2]

for 문 내의 각 식은 별개의 식입니다.

for문의 작동 순서는 정해져 있으며, 전치수식 연산자나 후치수식 연산자의 영향을 받지 않습니다.

 

i++;

sum += i;

 

++i;

sum +=i;

 

위의 두 식의 결과가 아무런 차이가 없다는 것과 동일하죠.

이후 문제를 보면 for문의 증가식 부분에 쉼표(,)를 통해 두 개의 식이 들어간 경우도 존재합니다.

이 경우도 마찬가지로 쉼표(,)로 구분되어진 식은 별개의 식으로 생각하시고 풀으시면 되겠습니다.

 

for(; ; ) {

   ④;

}

 

위의 for문이 3회 반복한다고 가정했을 때, 순서는

1: , (조건 참),

2: , (조건 참),

3: , (조건 참),

4: , (조건 거짓) <탈출>

입니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-09 11:26:05

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

     

    [1]

    C언어에서 따로 지정자를 사용하지 않으면 소수점 자리는 무조건 6자리까지 반올림된 소수를 표시합니다.

    즉, 본래 1.23456789e+3 이 출력되어야 하지만 소수점 6번째 자리까지 출력하기 위해 7번째 자리의 숫자인 8에서 반올림된 수가 앞의 6번째 자리의 숫자인 7에 +1을 해주어

    1.234568e+3 이 출력되게 됩니다.

     

    [2]

    for 문 내의 각 식은 별개의 식입니다.

    for문의 작동 순서는 정해져 있으며, 전치수식 연산자나 후치수식 연산자의 영향을 받지 않습니다.

     

    i++;

    sum += i;

     

    ++i;

    sum +=i;

     

    위의 두 식의 결과가 아무런 차이가 없다는 것과 동일하죠.

    이후 문제를 보면 for문의 증가식 부분에 쉼표(,)를 통해 두 개의 식이 들어간 경우도 존재합니다.

    이 경우도 마찬가지로 쉼표(,)로 구분되어진 식은 별개의 식으로 생각하시고 풀으시면 되겠습니다.

     

    for(; ; ) {

       ④;

    }

     

    위의 for문이 3회 반복한다고 가정했을 때, 순서는

    1: , (조건 참),

    2: , (조건 참),

    3: , (조건 참),

    4: , (조건 거짓) <탈출>

    입니다.

     

    행복한 하루되세요 :)

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