#include<stdio.h>
#include<stdlib.h>
int count(int a);
int main()
{
int a;
int n=0;
scanf("%d",&a);
n=count(a);
printf("%d\n",n);
return 0;
}
int count(int a)
{
int i,n=0;
for(i=0;a!=0;i++)
{
a=a/10;
n++;
}
return n;
}
为什么我的程序只能算到10位的数字,如果输入12位数字输出也是10
数大小超出了int型范围,改成long long int
#include<stdio.h>
#include<stdlib.h>
int count(long long int a);
int main()
{long long int a;
int n=0;
scanf("%lld",&a);
n=count(a);
printf("%d\n",n);
return 0;
}
int count(long long int a)
{
int i,n=0;
for(i=0;a!=0;i++)
{
a=a/10;
n++;
}
return n;
}
int最大10位数。再大用unsigned long long
变量 a 是 int 型: