c 语 言 循 环语句do while

想要得到反位数,我这个代码输入12345,输出为什么只有5啊
[](

```c
#include
int main()
{
int a,b,m;
m=0;
printf("输入一个正整数\n");
scanf("%d",&a);
if(a<=0)
printf("输入有误\n");
do
{
b=a%10;
m=m*10+b;
a=a/10;
}while(a<=0);
printf("%d",m);
return 0;
}

```)

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

给你改了改试试

#include <stdio.h>

int main() { // main 函数开头应该加 {
    int a, b, m;
    m = 0; // 0 的英文单词是 "zero" 而不是 "O"

    printf("输入一个正整数n:"); // 冒号应该放在引号内

    scanf("%d", &a);
    if (a <= 0) {
        printf("输入有误\n"); // \n 表示换行
        return 0; // 如果输入有误就直接退出程序
    }

    do {
        b = a % 10;
        m = m * 10 + b;
        a = a / 10;
    } while (a > 0); // 如果 a <= 0,就一次也不会进入循环

    printf("%d\n", m); // 记得换行

    return 0;
}

while循环判断条件错了

#include<stdio.h>

int main()
{
    int a,b,m;
    m=0;
    printf("输入一个正整数\n");
    scanf("%d",&a);
    if(a<=0)
    {
        printf("输入有误\n");
        return 0;
    }
    do
    {
        b=a%10;
        m=m*10+b;
        a=a/10;
    }while(a>0);
    printf("%d",m);
    return 0;
}