c++中给出一个不多于五位数的正整数,按逆序打印各位数字,输入一个正整数a,输出a的回文数

c++中给出一个不多于五位数的正整数,按逆序打印各位数字,输入一个正整数a,输出a的回文数


#include<iostream>
using namespace std;
int main()
{
    int a;
    cin>>a;
    if(a==0)
        cout<<a;
    while(a)
    {
        cout<<a%10;
        a=a/10;
    }
    return 0;
}

#include <iostream>
using namespace std;

void func(int n)
{
    if(n<10)
        cout<<n;
    else
    {
        cout<<n%10;
        func(n/10);
    }
}

int hw(int n)
{
    int m=0;
    while(n>0)
    {
        m = m*10 + n%10;
        n/=10;
    }
    return m;
}

int main()
{
    int n;
    cin>>n;
    func(n);
    cout<<endl;
    if(n==hw(n))
        cout<<n<<"是回文";
    else
        cout<<n<<"不是回文";
}

这是我上完选择结构程序设计后写的作业


int main()
{
    int a, l;
    scanf("%d",&a);
    if(a-10<0)
    {
    l=1;
        printf("个位数\n");
    }
    else if (a-100<0) 
    {
        l=2;
    printf("十位数\n");
    }
    else if (a-1000<0) 
     {
        l=3;
    printf("百位数\n");
    }
    else if (a-10000<0) 
    {
        l=4;
    printf("千位数\n");
    }
    else if (a-100000<0) 
    {
        l=5;
    printf("万位数\n");
    }

    int b,c,d,k,f;
    b=(int)a/10000;
    c=(int)(a%10000)/1000;
    d=(int)(a%1000)/100;
    k=(int)(a%100)/10;
    f=(int)(a%10);
    printf("%-6d%-6d%-6d%-6d%-6d\n",b,c,d,k,f);

    int g;
    switch(l)
    {
    case 1: g=f; break;
    case 2: g=f*10+k; break;
    case 3: g=f*100+k*10+d; break;
    case 4: g=f*1000+k*100+d*10+c; break;
    case 5: g=f*10000+k*1000+d*100+c*10+b; break;
     }
    printf("%-6d",g); 
    return 0;
}