C语音的一个小程序,哪里错了啊!!!!
输入一个不大于5位的整数,输出其位数,可是运行时输入11111是5位,但是输入99999时就变成一位了,是不是数据溢出什么的啊...
输入一个不大于 5位的整数,输出 其位数,可是运行时输入11111是5位,但是输入99999时就变成一位了,是不是数据溢出什么的啊
展开
5个回答
展开全部
可能你的编译器对于int型只用16位表示,那么int能表示的数范围是-32768-32767之间,所以溢出了,你可以打印一下sizeof(int)是多大,如果是2就是16位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为int类型代表的最大值是32767,所以把int改为double就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主用的是turbo c吧
turbo c int 用2字节表示,1位是符号位,最大值应该是2^15=32727
用把int改成long试试
turbo c int 用2字节表示,1位是符号位,最大值应该是2^15=32727
用把int改成long试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
65535是int型定义,建议用unsigned int。你再试试!
追问
没用
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c中的int是2个字节.最大的也是0111 1111 1111 1111
c++中的int是4个字节..
c++中的int是4个字节..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询