回 帖 发 新 帖 刷新版面

主题:如何判断一个整形是多少位数?

请问如何判断一个整形是多少位数?

回复列表 (共15个回复)

11 楼

/*C code*/
.....
int i=123;
char c[6];
printf("%d length %d", i, strlen(itoa(i,c,10)));
......

12 楼

int n,,b,sum=2;

b=n/10;
while(b!=o)
{
b=n/10;
sum++;

}

13 楼

最简PASCAL代码:
PROGRAM ONE;
VAR
  N:LONGINT;
  I,J,LEN,X:LONGINT;
BEGIN
  READLN(N);
  LEN:=TRUNC(LN(N)/LN(10))+1;      {计算乘数的位数}
END.

PROGRAM TWO;
VAR
  A:LONGINT;
  LEN:INTEGER;
BEGIN
  READLN(A);
  LEN:=0;
  WHILE A DIV 10>0 DO
  BEGIN
    INC(LEN);
    A:=A DIV 10;
  END;
END.

14 楼

2楼的说的没错!!!!
是个好方法!!

15 楼

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int num ;
    int count ;
    char array[10] ;
    scanf("%d",&num) ;
    count = ( (int)( log(num)/log(10) ) ) + 1 ;
    printf("LOG Method :%d\n",count ) ;
    count = strlen(itoa( num , array , 10  ) ) ;
    printf("STRLEN Method : %d\n", count ) ;
    getch() ;
    return 0 ;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int num ;
    int count ;
    char array[10] ;
    scanf("%d",&num) ;
    count = ( (int)( log(num)/log(10) ) ) + 1 ;
    printf("LOG Method :%d\n",count ) ;
    count = strlen(itoa( num , array , 10  ) ) ;
    printf("STRLEN Method : %d\n", count ) ;
    getch() ;
    return 0 ;
}
/*
此外,还有用while循环的,我就不写了,呵呵!
*/

我来回复

您尚未登录,请登录后再回复。点此登录或注册