给定一个三位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。
逆序数在本题中的定义通俗地理解就是忽略数字的符号,将数位上的数字翻转
输入
输入为一个三位数的整数 a \ (101 \leq |a| \leq 999)a (101≤∣a∣≤999)。
保证 aa 的百位和个位都不为 00。
输出
输出一个整数,表示 aa 的逆序数。
#include
int main()
{
int x;
int dight;
int ret;
while(scanf("%x",&x)!=EOF&&(x>=101)&&(x<=999)&&(x%10!=0)&&(x%100!=0))
//这里有一个输入前提条件一个循环判断x>0
//想知道要怎么设置这个结构?
//试了if{while{}}不行
{
dight=x%10;
ret=ret*10+dight;
x/=10;
printf("\n%d",ret);
}
}
供参考:
#include <stdio.h>
int main()
{
int x, ret = 0, symbol = 1;
scanf("%d", &x);
if (x < 0) {
x = -x;
symbol = -1;
}
while (x) {
ret = ret * 10 + x % 10;
x /= 10;
}
ret *= symbol;
printf("%d", ret);
return 0;
}
没必要判断x>0,while之前先取个绝对值即可
你非要判断,也是先
if(x<0)x=-x;
再while循环
不要把if和while嵌套