我有以下代码,不希望将up
(float
声明为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
都将正确的值类型返回到down
和exp
。
这两个函数fac
和float 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}}
答案 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
开始。