编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

一道非常简单的题目输入数字输出他是几位的数

一道非常简单的题目输入数字输出他是几位的数

源程序如下:
us(int a)
    {int b;
     if(a/10==0) b=1;
    else b=us(a/10)+1;
    return(b);
    }
main()
{int a,b;
  scanf("%d",&a);
  b=us(a);
printf("%d",b);
}
我的程序运行小于6位数的时候出去的位数是正确的可是一超过或等于六位数的时候就出错了我明明输入六位他确得到4位的,为什么在那里错了请高手指点。
           

TOP

超过32767就不行了,你的数据类型太小!

用long

TOP

把int 变为float ,%d变为%f,呵呵

TOP

空前说的我试了还是一样没有用,上面这样说的有点不对数字的位数是不有用实型的
难道我输入5324那输出的是4。00位晕

TOP

哦我在试了一下空前说的终于可以了谢谢版主。

TOP

发新话题