子余阿森 2022-11-01 22:24 采纳率: 57.1%
浏览 17
已结题

判断对称数的代码不知道哪里有问题?求解答。

问题遇到的现象和发生背景

这是个判断一个数是否为对称数(例如:121,12321这一类的数)的代码。

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
int main(){
int x,a,b,c;
b=0;
scanf("%d",&x);
c=x;
while (x>=10)
{
a=x%10;
x=(x-a)/10;
b=b*10+a;
}
if (c==b)
{
printf("yes");
}else
{
printf("no");
}

return 0;

}

运行结果及报错内容

除零外输入什么数都会输出“no”

我的解答思路和尝试过的方法

b的值就是把原来的数反向输出,但是好像没有用。

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-11-01 22:30
    关注

    改动处见注释,供参考:

    #include<stdio.h>
    int main()
    {
        int x,a,b,c;
        b=0;
        scanf("%d",&x);
        c=x;
        while (x > 0)//(x>=10)修改
        {
            a=x%10;
            x=x/10; //x=(x-a)/10;修改
            b=b*10+a;
        }
        if (c==b){
            printf("yes");
        }
        else{
            printf("no");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日