C语音的一个小程序,哪里错了啊!!!!

输入一个不大于5位的整数,输出其位数,可是运行时输入11111是5位,但是输入99999时就变成一位了,是不是数据溢出什么的啊... 输入一个不大于 5位的整数,输出 其位数,可是运行时输入11111是5位,但是输入99999时就变成一位了,是不是数据溢出什么的啊 展开
 我来答
tonydelwee
2011-03-30 · TA获得超过672个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:406万
展开全部
可能你的编译器对于int型只用16位表示,那么int能表示的数范围是-32768-32767之间,所以溢出了,你可以打印一下sizeof(int)是多大,如果是2就是16位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ehzt2009
2011-03-30 · TA获得超过140个赞
知道小有建树答主
回答量:248
采纳率:25%
帮助的人:73.8万
展开全部
因为int类型代表的最大值是32767,所以把int改为double就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夷嘉岳3420
2011-03-30 · TA获得超过184个赞
知道答主
回答量:80
采纳率:0%
帮助的人:96万
展开全部
楼主用的是turbo c吧
turbo c int 用2字节表示,1位是符号位,最大值应该是2^15=32727
用把int改成long试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a3722676e
2011-03-30 · TA获得超过1215个赞
知道小有建树答主
回答量:957
采纳率:0%
帮助的人:862万
展开全部
65535是int型定义,建议用unsigned int。你再试试!
追问
没用
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zrp112358
2011-03-30 · TA获得超过333个赞
知道小有建树答主
回答量:198
采纳率:100%
帮助的人:131万
展开全部
c中的int是2个字节.最大的也是0111 1111 1111 1111
c++中的int是4个字节..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式