2
我有以下一段代码,不想分开up
,它被声明为float
,down
,它被声明为int
。我曾尝试将down
铸造成浮标,但这也不起作用。 我得到的输出是inf
的10倍。int分隔浮动和存储为浮动 - 除零除
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;
}
任何人都可以帮我找到这段代码中的(巨大的)错误吗? 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;
}
请包括这两个功能!也尝试将函数的返回值转换为int和float(例如'float up =(float)exp(x,n); int down =(int)fac(n);')这是否有诀窍? – Rizier123
'fac()'做些什么? – nav
而不要命名你自己的函数'exp' ... –