昨天全国计算机二级的题目
从键盘上输入一个小于5位的整数,求该数的位数。请问在编程时要不要定义整数n的范围
#include <stdio.h> void fun (int n); int main () { int n; scanf("%d",&n); fun(n); return 0; } void fun (int n) { if(n>-10&&n<10) printf("%d 是一位数\n",n); else if((n>=10&&n<100) || (n>-100&&n<=-10)) printf("%d 是二位数\n",n); else if((n>=100&&n<1000) || (n>-1000&&n<=-100)) printf("%d 是三位数\n",n); else if((n>=1000&&n<10000) || (n>-10000&&n<=-1000)) printf("%d 是四位数\n",n); else printf("Error\n"); }
#include <stdio.h> int fun(int n) { int v = 1; if(n < 0) n *= -1; while(n > 10) { n /= 10; v++; } return v; } int main(void) { int n; scanf("%d", &n); printf("%d\n", fun(n)); return 0; }