c语言关于abs函数用法问题

我现在知道了小数要用fabs 但我用abs不应该是直接把小数转换为整数再运算吗 为什么平台上测试会有这种奇怪的数,,,图片说明图片说明

加了return 0;之后结果还是这个

加了#include,我没有任何问题

 #include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
    double s = 0, i, n, a;
    scanf("%lf",&n);
    for(i = 1; i <= n; i++){
        scanf("%lf",&a);
        s += abs(a);
    }
    printf("sum=%.3f\n",s);
}

#include