앞에 0을 채워서 출력하려면 어떡해야 되죠?

조회수 4046회

우편번호처럼 딱 5자리 6자리에 맞춰 정수를 출력할 건데요 제가 짠 코드보다 더 쉬운 방법은 없을까요?

소스코드

/*
num : 출력할 정수, 
len : 자릿수
*/
void printWith0(int num, int len){
    int num0 = len-num/10;
    int i;
    for (i=1; i<num0; i++) {
        printf("0");
    }
    printf("%d", num);
}


int main() {
    int mynum = 1;
    printWith0(mynum, 5);
}

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    c에 이 기능을 지원하는 형식 지정자가 있습니다. 지정자 %바로 뒤에 0을 붙이고, 그 뒤에 자릿수를 입력한 후, 타입에 맞는 형식 지정자를 추가합니다

    단, 부동소수점의 경우는 정수부가 아니라 소수점 n자리까지 0을 채워달라는 의미이니 둘을 구분해서 써주세요

    예제 :

    int main() {
        printf("%05d\n", 303);
        printf("%010d\n", 303);
        printf("%05f\n", 3.03);
    }
    

    출력 :

    00303
    0000000303
    3.030000
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)