자리수 분리하는 프로그램작성질문좀합니다
세자리로 이루어진 숫자를 입력받은 후 각각의 자리수를 분리하고 이 자리수를 출력하는 프로그램을 작성해야하는데 어떻게 해야하는지 모르겠네요 ㅠㅠ 우선 아래와 같이 해보았습니다. 조언 부탁드립니다..
#include <stdio.h>
int main(void)
{
int number;
int number_100, number_10, number_1;
printf("정수를 입력하시오: ");
scanf("%d", &number);
number_100 = number / 100;
printf("백의 자리수: %d\n", number_100);
number = number % 100;
number_10 = number / 10;
printf("십의 자리수 : %d\n", number_10);
number = number % 10;
number_1 = number / 1;
printf("일의 자리수 : %d\n", number_1);
return 0;
}
아래 링크 참고해보세요. 숫자 천 단위, 3자리마다 쉼표(콤마) 넣기; 1000 Number Comma 예제입니다.
[참조글]
다른 언어들에는 숫자 천단위마다 쉼표를 넣는 방법이 제공되거나, 또는 정규식으로 쉽게 구현할 수 있지만, C에서는 좀 힘듭니다.
쉼표 넣기 C소스는 많이 있는데, 마이너스 부호(-)를 처리하지 못하거나, 즉 음수에 콤마를 넣을 수 없거나, 소수점 이하 부분을 처리하지 못하는 등의 문제가 있었습니다. 어제 뉴스그룹에서 좋은 소스를 발견했습니다. 다음의 commify() 라는 함수입니다.
다만, 정수에 쉼표를 넣을 때는, 끝에 마침표가 찍히는 문제가 있어서, 그 마침표를 제거하는 코드를 메인 함수에 추가했습니다.
commify 함수의 3번째 인수인 "int round" 는, 소수점 몇째 자리까지 나타낼지를 지정하는 것입니다.http://mwultong.blogspot.com/2007/02/c-3-1000-number-comma.html