如何输出一个三位数的逆序数(这个数可能是负数)?
从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由123分离出其百位1、十位2、个位3,然后计算3*100+2*10+1 = 321,并输出321。提示:
1. 从键盘输入数据可以使用函数scanf()。例如,scanf("%d", &x); 表示从键盘输入整数并存入整形变量x中。
2. 利用取绝对值函数 fabs()忽略输入数据的负号。fabs(x)表示计算变量x的绝对值。
3.使用数学函数,需要在程序开头加上编译预处理指令 #include <math.h>
我做了一下,代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,x,y;
printf("Input x:\n");
scanf("%d",&x);
x=fabs(x);
a=x/100;
b=(x-a*100)/10;
c=x/10;
y=100*c+10*b+a;
printf("y=%d\n",y);
return 0;
}
但是显示错误,请大神指教哪里错了?是fabs函数不能这么用吗?