책 내용 질문하기
거꾸로 출력 순서도가 잘 이해되지 않습니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
조회수
81
작성일
2017-03-27
작성자
첨부파일

제 1권

p 192

거꾸로 출력 순서도에서 반복 i=c,1,-1이 어떤 식으로 해서 거꾸로 배열에 출력되는 지와 마찬가지로 C언어에서 for(i=c; i>=0; i-)이 어떤 식으로 거꾸로 출력되는지에 대해 이해가 잘 되지 않습니다.

답변
2017-03-28 09:42:38

안녕하세요.

2진수로 변환 될 때마다 나머지를 A[1]부터 저장을 합니다.

알고리즘의 이해에서도 확인했듯이 저장된 값을 거꾸로 출력해야 합니다.

거꾸로 출력한다는 것은

2진수로 변환된 값이 순서대로 1110이라면

A[1]에 1

A[2]에 1

A[3]에 1

A[4]에 0

이 기억되어 있다는 것이며

A 배열의 위치는 C에 기억되어 있습니다.

그러므로 i를 c부터 1까지 -1씩 증가하면서 출력하면 거꾸로 출력됩니다.

위를 예로 들면 i가 현재 4이므로 A[i]는 A[4]가 되어 0이 출력되고

이어서 -1 증가하여 i는 3이 되어 A[i]는 A[3]이 되어 1이 출력됩니다.

이와 같이 A[4]부터 A[1]까지 거꾸로 출력됩니다.

C언어는 배열의 위치가 0부터 시작하므로 A[0] ~ 저장되며

거꾸로 출력은 C의 현재 위치부터 A[0]까지 거꾸로 진행됩니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-03-28 09:42:38

    안녕하세요.

    2진수로 변환 될 때마다 나머지를 A[1]부터 저장을 합니다.

    알고리즘의 이해에서도 확인했듯이 저장된 값을 거꾸로 출력해야 합니다.

    거꾸로 출력한다는 것은

    2진수로 변환된 값이 순서대로 1110이라면

    A[1]에 1

    A[2]에 1

    A[3]에 1

    A[4]에 0

    이 기억되어 있다는 것이며

    A 배열의 위치는 C에 기억되어 있습니다.

    그러므로 i를 c부터 1까지 -1씩 증가하면서 출력하면 거꾸로 출력됩니다.

    위를 예로 들면 i가 현재 4이므로 A[i]는 A[4]가 되어 0이 출력되고

    이어서 -1 증가하여 i는 3이 되어 A[i]는 A[3]이 되어 1이 출력됩니다.

    이와 같이 A[4]부터 A[1]까지 거꾸로 출력됩니다.

    C언어는 배열의 위치가 0부터 시작하므로 A[0] ~ 저장되며

    거꾸로 출력은 C의 현재 위치부터 A[0]까지 거꾸로 진행됩니다.

    오늘도 즐거운 하루 되세요.

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