作业帮 > 综合 > 作业

C语言判断数位数问题#include"stdio.h"int main(){long n,j,m=1,result;sc

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/25 05:52:09
C语言判断数位数问题
#include"stdio.h"
int main()
{
long n,j,m=1,result;
scanf("%ld",&n);
for(j=1;;j++)
{
m=10*m;
result=n/m;
if(result==0)break;
}
printf("anwser=%ld\n",j);
getch();
return 0;
}
只能判断小于10位数判断~怎么改成能判断更大数判断!
C语言判断数位数问题#include
整数的最大长度也就是10位(无符号整数最大2的32次方-1)
如果想表示再大的数,最多也只能是定义成long long数据可达到2的64次方-1,你的程序需要修改一下.
#include"stdio.h"
int main()
{
unsigned long long n ;
int j;
scanf("%lld",&n);
for(j=1;;j++)
{
n = n/10;
if(n==0)break;
}
printf("anwser=%d\n",j);
return 0;
}
再问: 超过10位还是显示anwser=10 怎么回事???
再答: 给出你的测试数据。你用的是改过后的程序吗?编译器是什么?
再问: TC.
再答: 换个编译器去试试吧,TC在这方面很不尽人意,不能真实体现C的数据处理。 如:它里面int 类型为4字节,但实际可表示的数最大却是65535