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

标签 c function return-value

我正在尝试编写一个程序来求方程的根。我程序的一切都运行良好,除了方程本身:它不断返回错误值(1、无穷大、0、...)。

这是我正在评估的函数:

double f(x) {
    return exp(-x)-sin(M_PI*x/2.);
}

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

最佳答案

double f(x) {
    return exp(-x)-sin(M_PI*x/2.);
}

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

您传递了 .3,因此它被强制转换为 int 并变为 0。

exp(-0)-sin(M_PI*0/2.) == exp(0)-sin(0) == 1.0-0 == 1.0

请给自己找一个更好的编译器,并打开警告。

关于c - 函数未在 C 中返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782307/

相关文章:

c - 这是数组文字中的语法 - [x] = ‘y’ - 标准 C 吗?

时钟滴答和时钟周期的概念

javascript - 我如何从附属类(class)返回165

jquery - 从异步函数中向函数返回 true

c++ - 无法链接 pthreads 来解决 cmake 编译问题

C++ 第一次使用函数

javascript - 将两个简单的 JavaScript 函数合并为一个

c++ - 这两个分区函数之间的区别

javascript - JS lambda默认返回值

c - 将不同大小的struct写入二进制文件并读取