책 내용 질문하기
정보처리기사 실기 배열처리 c언어 작성에 대하여 질문합니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
342
조회수
138
작성일
2017-10-08
작성자
탈퇴*원
첨부파일

c언어 작문시에 마지막 프린트과정에서

printf("%3d", a[x][y]);

printf("\n");

이 과정에대한 질문입니다. 3자리 십진수로 출력하는데 그냥 %d로 출력하면안되는건가요 ?

그리고 행 시프트에 대해서 두개의 출력열을 합치면 안되는 이유라도 있는건가요 ?

제가 생각했던 정답은

printf("%d\n", a[x][y]) 로 출력하면 안되는 이유를 알고싶습니다 !

답변
2017-10-10 13:47:10

안녕하세요.

1)

그냥 출력하면 출력할 값이 붙어서 출력됩니다.

3자리를 주는 이유는 출력될 값이 2자리이므로 값을 출력하기 전에 앞에 두 칸(1~9까지는) 또는 한 칸(10~나머지)의 공백을 띄우기 위함입니다.

2)

위의 printf는 for문에 적용되는 것이고

아래쪽 printf는 for문이 끝날 때 적용됩니다.

즉 for문을 수행한 후 한 줄을 띄우는 것과

for문을 수행하면서 한 줄씩 띄우는 것은 띄우는 줄의 간격이 서로 다릅니다.

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

  • *
    2017-10-10 13:47:10

    안녕하세요.

    1)

    그냥 출력하면 출력할 값이 붙어서 출력됩니다.

    3자리를 주는 이유는 출력될 값이 2자리이므로 값을 출력하기 전에 앞에 두 칸(1~9까지는) 또는 한 칸(10~나머지)의 공백을 띄우기 위함입니다.

    2)

    위의 printf는 for문에 적용되는 것이고

    아래쪽 printf는 for문이 끝날 때 적용됩니다.

    즉 for문을 수행한 후 한 줄을 띄우는 것과

    for문을 수행하면서 한 줄씩 띄우는 것은 띄우는 줄의 간격이 서로 다릅니다.

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

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