函数未在C中返回正确的值

Nat*_*cha 2 c function return-value

我正在尝试创建一个找到方程根的程序.关于我的程序的一切工作都很好,除了方程本身:它不断返回错误的值(1,无穷大,0,...).

这是我正在评估的功能:

double f(x) {
    return exp(-x)-sin(M_PI*x/2.);
}
Run Code Online (Sandbox Code Playgroud)

例如,f(.3)应该是.287,但它返回1.000.奇怪的是,我前一段时间在另一台计算机上尝试了完全相同的代码并且工作得很好.

Ela*_*zar 7

double f(x) {
    return exp(-x)-sin(M_PI*x/2.);
}
Run Code Online (Sandbox Code Playgroud)

x的类型未声明,因此默认为int.

你通过.3,所以它强迫int并成为0.

exp(-0)-sin(M_PI*0/2.) == exp(0)-sin(0) == 1.0-0 == 1.0
Run Code Online (Sandbox Code Playgroud)

请找到一个更好的编译器,并打开警告.