#include<stdio.h>
long f(long int x)
{
int a[100];
int i;
for(i=1;;i++)
{
a[i]=x%10;
x=x/10;
if(x==0)break;
}
return (i);
}
void main()
{
long x;
int m;
printf("输入一个任意位数的整数:");
scanf("%l",&x);
m = f(x);
printf("%l的位数为%i!",x,m);
}
运行成功了,为什么
scanf("%ld",&x);//这里改了
printf("%ld的位数为%ld!",x,m);//这里也改了
就可以了呢?
因为long int 的格式应该是%ld 你写的那个格式是杜撰的吧...