已经调试,请采纳,如需注释,请追问
另,负数都返回0,如需返回负数整数个数,使用fabs,或将字符串指针挪到符号之后。
#include
#include "string.h"
int GetIntNum(float f)
{
char a[50],*p;
if(f<1)return 0;//补充回答
{
sprintf(a,"%f",f);
p=strchr(a,'.');
*p='\0';
return strlen(a);
}
}
void main(){
float f;
scanf("%f",&f);
printf("result is:%d\n",GetIntNum(f));
}
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{
double n;
int m,i;
while(cin>>n)
{
m=int(n);//把浮点型的n强制转化为整型,这样就不用管小数部分了
if(m==0)
{
printf("%d\n",0);//如果强制转化后为0那么直接输出0,比如0.6强制转化为整型后为0
continue;//输出后跳出本次循环,进行下一次输入循环
}
for(i=0;;i++)
{
m/=10;//不断除10,比如1234/10,除四次就是0了
if(m==0)//判断是否为0
break;//为0了表示除光了就跳出for循环
}
printf("%d\n",i+1);//i表示除了几次,但因为i从0开始所以要加1
}
return 0;
}
int main()
{
int num;
int count = 1;
scanf("%d",&num);
if(num<1)
{
printf("%d\n",0);
return 0;
}
while(num)
{
if(num/10==0)
break;
num/=10;
++count;
}
printf("%d\n",count);
return 0;
}