【发布时间】:2013-05-28 00:46:32
【问题描述】:
我正在尝试编写一个找到方程根的程序。我的程序一切正常,除了方程本身:它不断返回错误值(1、无穷大、0、...)。
这是我正在评估的函数:
double f(x) {
return exp(-x)-sin(M_PI*x/2.);
}
例如,f(.3) 应该是 0.287,但它返回 1.000。奇怪的是,我不久前在另一台计算机上尝试了完全相同的代码,它运行得很好。
【问题讨论】:
-
函数签名是什么?
double f(x)格式不正确。 -
@Elazar:从 C90 开始,它并没有形成错误;这是一个旧式(ANSI 之前)定义,
x的类型默认为int。从 C99 开始,“隐式int”规则已被删除,这是违反约束的,需要进行诊断。 -
@KeithThompson 谢谢。你可以从我的回答中看到我知道默认到整数 - 或者可能已经猜到了,因为 everything 出于某种原因默认为
int... 我假设f(x){ }是一个格式良好的函数,它获取一个int并返回一个int,也 :P 。我很高兴知道 K&R 的想法。
标签: c function return-value