POST

C언어 입력한 정수의 자리 수 구하기

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형 즉, 정수형으로 선언했기 때문에 소수점 아래의 수는 사라지게 됩니다.