C언어 입력한 정수의 자리 수 구하기
핵심 요소
- 정수를 입력받을 변수, 입력받은 값의 변경에 대해 보호할 변수, 자리수를 헤아릴 변수
- 반복문 (저는 for문을 이용 했습니다.)
- 음수 판별을 위한 조건문 if
int main(void) {
int n; //숫자 n 입력 받을 변수
int i_n; // 변수 n의 값의 보호를 위한 변수
int i; // 자리수를 체크할 변수
printf("숫자 입력: ");
scanf("%d", &n); //변수 n에 숫자 입력 받음
i_n = n; // 변수n을 변수i_n에 대입 -> 변수n의 값을 보호하기 위함
if (i_n <= 0) // 입력받은 숫자가 음수인지 판단
i_n = i_n*(-1); // 음수를 양수로 변환
for (i = 0; i_n / 10 != 0; i++) { // 변수 i를 0으로 초기화하고, 변수i_n의 값이 0이 아닐경우 변수i의 값을 1증가 시키고 반복한다.
i_n = i_n / 10; // 자리수 감소역할, 변수 i_n을 10으로 나누어 그 몫을 저장한다.
}
printf("%d의 자리수: %d\n\n", n, i + 1); // 결과 출력
}
Tip
- 10으로 나눈 몫에는 소수점 자리도 있을 텐데 왜 소수점자리는 변수 i_n에 포함 되지 않나요?
변수 i_n를 선언 할 때 int형 즉, 정수형으로 선언했기 때문에 소수점 아래의 수는 사라지게 됩니다.
'C' 카테고리의 다른 글
C언어 조건 연산자(삼항 연산자) 사용법 (0) | 2017.04.12 |
---|---|
C언어의 시작-최신버전 비주얼 스튜디오 무료로 설치하기(Visual Studio Community) (0) | 2017.03.27 |
C언어 While반복문을 이용한 입력한 정수를 반대로 출력하기 (0) | 2017.03.14 |
C언어 원하는 수를 입력받아 1부터 n까지 짝수의 합구하기 (0) | 2017.03.14 |
C언어 '('와')' 의 짝이 맟는지 검사하는 프로그램 만들기 (1) | 2014.11.23 |