将float除以int并存储为float - 除以零

时间:2015-01-08 18:37:14

标签: c floating-point int division

我有以下代码,不希望将upfloat声明为down,而int被声明为down 。我已经尝试将inf转换为浮点数,但这也不起作用。 我获得的输出是int main(void) { float x = 0.1, y = 0.0; for (int n = 0; n < 10; n++) { float up = exp(x, n); int down = fac(n); y = up / down; printf("%f\n", y); x += 0.1; } return 0; } 的10倍。

exp(x,n)

任何人都可以帮我找到这段代码中的(巨大)错误吗? fac(n)up都将正确的值类型返回到downexp

这两个函数facfloat exp(float x, int n) { float power = 1; for (int i = 0; i < n; i++) { power *= x; } return power; } int fac(int n) { int fac = 1; for (int i = 0; i <= n; i++) { fac *= i; } return fac; }

{{1}}

1 个答案:

答案 0 :(得分:3)

你除以0:

int fac = 1;
for (int i = 0; i <= n; i++) {
    fac *= i; /* This will be 0 since you start from i=0. */
}
return fac;

您可能只想从1开始。