CodeUp기초100제-1025번 문제


less than 1 minute read

문제 설명

다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력한다.

참고

scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);

를 사용하면 1개의 숫자로 각각 구분되어 저장된다.

예시 읽어들인 값을 적당히 바꿔 출력하기 위해서

printf("[%d]", a*10000);

과 같은 방법도 가능하다.

입력 각 자리 숫자를 분리해 한 줄에 하나씩 [] 속에 넣어 출력한다

입력 예시 75254

출력 예시 [70000] [5000] [200] [50] [4]

기본 풀이

우선 기초다보니 아래 코드처럼 정말 쌩 노가다로 하나하나 찍길 바란 것 같은데…

#include <stdio.h>

int main () {

    int a, b, c, d, e;

    scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
		
    printf("[%d]\n", a * 10000);
    printf("[%d]\n", b * 1000);
    printf("[%d]\n", c * 100);
    printf("[%d]\n", d * 10);
    printf("[%d]\n", e);
		
    return 0;
}

코드가 너무 생노가다다… 그래서 변경

for문 활용

#include <stdio.h>

int main(){

    int a,b[5],c=10000;
		
    scanf("%d",&a);
		
    for(int i=0; i<5; i++){
       
		b[i] = a - a%c;
        a -= b[i];
        c /= 10;
        printf("[%d]\n",b[i]);
				
    }
    
    return 0;
}

Leave a comment