我写了如下代码:
#include <stdio.h>
#include <math.h>
int main(void){
int a = -10;
printf("%d\n", fabs(a)); // -789819000
return 0;
}
我发现不对,我又改了一下:
#include <stdio.h>
#include <math.h>
int main(void){
signed int a = -10;
printf("%d\n", fabs(a)); // 2117194024
return 0;
}
我接着改:
#include <stdio.h>
#include <math.h>
int main(void){
signed int a = -10;
printf("%u\n", fabs(a)); // 557536920
return 0;
}
请问我到底应该怎么写?
才能显示为10
fabs是针对浮点数的,返回的结果是个float类型,abs才是针对整数的。
你要不改成abs的话,可以在结果之前转成int
printf("%dn", (int)fabs(a));
而且这个还会把你的a强转成float