입력 받는 정수의 자릿수 출력하기(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 |