weixin_36813246
YDYDYDQ
采纳率28.6%
2016-11-24 12:37

C语言回文数的判断问题

已采纳

回文数:#include
void main()
{
int x=1, y,t;
printf("input n: "); scanf("%d", &x ); //输入数据
y=0;
t=x; //保存下原数
do {
y=y*10+t%10;
t/=10;
} while(t); //原数逆序
if ( y==x )
printf("yes!\n");
else
printf("no!\n");
}
超过11位数字就会出错?为什么?eg:12345678987654321
即使是改类型也会出错呢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • shen_wei shen_wei 5年前

    推荐使用字符串翻转模式来实现。。。这样就不受位数限制了!!

    点赞 评论 复制链接分享
  • u012934325 墨笙弘一 5年前

    换成字符串或者字符数组呢?

    点赞 评论 复制链接分享
  • xiaowu_cc xiaowu_cc 5年前

    int类型占4个字节,也就是32位二进制数,最高位是符号位,0表示正数,1表示负数,所以int能够表示的数的范围是-2的31次方到2的31次方-1。超过这个范围内存就会溢出,会出错

    点赞 评论 复制链接分享

相关推荐