C 이론/C문제, 공부

자릿수 출력_C언어

ruming 2020. 4. 23. 09:01

입력 받는 정수의 자릿수 출력하기(2가지)

 

 

1. 입력받는 양의 정수가 세자릿수 이하라는 조건 / if문만 이용했을 때

if문안의 조건 : 단순하게 수의 범위를 나눔. 세자릿수 이하라는 조건이 있어서 가능한 것.

//자릿수 출력
#include <stdio.h>
int main(void){
        int a;	
        printf("Enter an positive integer: ");		
        scanf("%d",&a);								//정수 입력받음
        if(a>0&&a<10)   printf("%d has 1 digit.\n",a);		    //입력받은 정수가 1~9 -> 한자리
        else if(a>=10&&a<100)   printf("%d has 2 digits.\n",a);	//입력받은 정수가 11~99 -> 두자리
        else if(a>=100&&a<1000) printf("%d has 3 digits.\n",a);  //입력받은 정수가 100~999 -> 세자리
        else    printf("Error!\n");		//범위를 벗어나면 error 출력

        return 0;
}

 

2. 입력 받는 정수는 음이 아닌 정수. if문과 do-while문 사용. int형 안의 정수로 입력받아야 자릿수가 출력된다.

범위를 벗어난 정수를 입력하자 자릿수가 1이 출력되었다...

+음의 정수를 입력했을 때 반복문을 이용해 다시 입력받는 코드를 추가하면 좋을 것 같다.

#include <stdio.h>
int main(void){
	int n,i=0;
	printf("Enter a non-negative integer: ");
	scanf("%d",&n);
	do{
		n/=10;
		i++;
	}while(n>0); //n>0이면 반복 
	printf("The number has %d digit(s).\n",i);
	return 0;
}

'C 이론 > C문제, 공부' 카테고리의 다른 글

프개실습 exer11  (0) 2020.06.16
5/21 [프개] 포인터  (0) 2020.06.12
5/14 - [프개] 함수  (0) 2020.06.07
5/7 [프개] - 배열, 함수  (0) 2020.05.31
exer4 t1.c, t2.c 구구단 출력, 소수판별 프로그램  (0) 2020.04.21