이 코드는 입력 된 숫자의 자릿수를 계산합니다.선행 0을 포함하여 숫자의 숫자를 계산하는 방법은 무엇입니까?
입력 번호가 06584
인 경우이 코드의 출력은 0을 제외한 4
이됩니다. 출력으로 5
을 얻으려면 어떻게해야합니까? (0으로 계산)?
#include<stdio.h>
void main()
{
int n,c=0,d;
printf("Enter no\n");
scanf("%d",&n);
while(n!=0)
{
d=n%10;
c++;
n=n/10;
}
printf("No of digits=>%d\n",c);
}
없음 수학 솔루션은 앞에 0을 감지하려고하지 않습니다. 사용자 입력을 문자열로 읽고 문자열 길이를 얻어야합니다. – Kenster
당신은 n 앞에'printf'를 추가해야합니다. 앞의 0은 사라 졌음을 알 수 있습니다. – pm100
'char n [100]; scanf ("% s", n); c = strlen (n);'. 그러면 입력이 유효하다고 가정하여 자릿수를 얻을 수 있습니다. 실제로 그것이 숫자인지 확인하려면'strtol'을 사용하십시오. – kaylum