C函数returns变量初值

Function in C returns initial value of a variable

我刚开始编程,我很难理解具有 return 值的函数。例如,我尝试制作函数 returns 实数的绝对值:

包括

double absol(double x) {

    if (x>0) {
        return (x);
    }
    else {
        return (-x);
    }
}
main() {
    double x;
    scanf("%fl",&x);
    printf("%f",absol(x));
}

它返回零,如果我改变 x 的初始值,它返回这个值。为什么它不采用我用 scanf 输入的值? 谢谢。

scanf("%fl",&x); 不会正确读取双精度数。您需要 scanf("%lf",&x);