震惊:fabs函数的使用注意

那天我正在做一个很简单的题:

求输入数字的绝对值
我立马想到了调用math.h函数解决这个问题
这是我写的代码,并且我希望将取绝对值这个步骤整合到用于输出的代码中

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <math.h>
int main() {
int a;
scanf_s("%d", &a);
printf("%d", fabs(a));
return 0;
}

//输入-123
//输出0

apparently,我写的代码出错了
因为fabs函数的作用是计算浮点数 的绝对值,返回值是double类型
显然,我的a是int类型
我是这么改的:

1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <math.h>
int main() {
int a;
scanf_s("%d", &a);
a = fabs(a);
printf("%d", a);
return 0;
}