C语言分别求232、27、851这三个数的2进制、十进制、十六进制是否是回文,为什么打星号的for语句循环不了?

[复制链接]
查看11 | 回复2 | 2012-2-29 22:29:41 | 显示全部楼层 |阅读模式
我感觉你的for循环里的逻辑有点儿错误。咱们可以设想一下,假如232的2进制数是110101.现在我们进入了带有*的for循环,此时第一个数是1,最后一个数也是1,于是程序判定110101为回文,执行if语句返回1,继续执行main函数。可是我们发现该2进制数并不是回文。for循环里应该这样改就行了for(i=0;i<m;i++){if(a!=a[m-i-1])return 0;}return 1;该for循环的意思是:只要发现有两个不相称的,该数就不是回文数,返回0;如果找到最后没有不相等的,就说明该数是回文数,返回1。...
回复

使用道具 举报

千问 | 2012-2-29 22:29:41 | 显示全部楼层
那要知道return是干什么用的,它一般用做函数的返回值返回,再说,一return可定只执行一次了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行