接收一个三位数输入,并逆序输出

#include<stdio.h>

//输入一个三位数,逆序输出。
//如:234 输出 432
// 230 输出 32
// 200 输出 2
int main()
{
    int a;
    int B,S,G;
    printf("请输入一个三位数\n");  //提示用户输入
    scanf("%d",&a);
    B = a/100;        //接收百位数
    S = (a/10) % 10;  //接收十位数
    G = a % 10;       //接收个位数

    if(G == 0)   //判断个位数是否为0
    {
        if(S == 0)
        {
            printf("%d逆序输出的结果是%d",a,B);  //个位数为0且十位数为零  例如 200  输出百位数2
        }else
        {
            printf("%d逆序输出的结果是%d%d",a,S,B); //个位数为0,十位数不为零  例如 210 输出12 拼接十位的数字和百位的数字
        }
    }else
    {
        printf("%d逆序输出的结果是%d%d%d",a,G,S,B); //个位数、十位数、百位数均不为零 , 逆序输出即可
    }
    return 0;
}

 

题主代码没问题,不过可以改的更简练点,供参考:

#include<stdio.h>
//输入一个三位数,逆序输出。
//如:234 输出 432
// 230 输出 32
// 200 输出 2
int main()
{
    int a ,b ,b_a;
    printf("请输入一个三位数\n");  //提示用户输入
    scanf("%d",&a);
    b = a;b_a = 0;
    while(b){
          b_a = b_a * 10 + b % 10;
          b /= 10;
    }
    printf("%d逆序输出的结果是:%d",a,b_a);

    return 0;
}


// X0 为输入的数
// Y 为输出的数

#include<stdio.h>
using namespace std;

int main()
{
    int X0;
    int Y = 0;
    
    printf("请输入一个三位数\n");  //提示用户输入
    scanf("%d", &X0);
    

    if (X0 > 999 || X0 < 100)
    {
        printf("输入的数字不符合要求\n");
        return 0;
    }


    int X = X0;
    for (; 1; )
    {
        if (X % 10 == 0)
            X /= 10;
        else
            break;
    }

    int X_temp = X;

    for (; X; )
    {
        Y = Y * 10 + (X % 10);
        X = X / 10;
    }
    printf("%d逆序输出的结果是%d\n", X0, Y);
    system("pause");
    return 0;
}

img

img

img

img