C语言判断数位数问题#include"stdio.h"int main(){long n,j,m=1,result;sc
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/29 11:28:37
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位数判断~怎么改成能判断更大数判断!
#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位数判断~怎么改成能判断更大数判断!
整数的最大长度也就是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
如果想表示再大的数,最多也只能是定义成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
C语言判断数位数问题#include"stdio.h"int main(){long n,j,m=1,result;sc
C语言编程数位的调换#include<stdio.h>int main(void){\x05int n,m,
C语言,一个 #include"stdio.h"main(){long double s=0,t=1 ;inti,j;f
一道C习题,题是这样的# include "stdio.h"void main(){int i,j,m,n;i=8;j=
C语言求余数问题#include<stdio.h>main(){ int x,y,a,b,c;&n
#include"stdio.h" int i=10; main() {int j=1; j=func (); prin
c语言回文数问题#include "stdio.h"#include int hui(int a){\x09int i,
c语言除法运算问题#include "stdio.h"void main(){int a,b;float c,d;a=3
C语言菜鸟问题如下#include "stdio.h"void main(){ int d=5,p=3;\x05d+=+
#include "stdio.h" main() { int m,n; float k; for (m=6;m>2;m
我想问个C语言程序:#include "stdio.h"void main(){int Hang,Lie; Hang=1
C语言程序改错题,#include "stdio.h"int yanghui(int x,int y)main(){in