CodeUp기초100제-1025번 문제
문제 설명
다섯 자리의 정수 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