#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;
}