逆序三位数,但是三位数有限制条件,不知道怎么设置结构

给定一个三位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。

逆序数在本题中的定义通俗地理解就是忽略数字的符号,将数位上的数字翻转
输入

输入为一个三位数的整数 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嵌套