将 float 除以 int 并存储为 float - 除以零
Dividing float by int and storing as float - Division by zero
我有以下一段代码,它不想将 up
声明为 float
,由 down
声明为 [=5] =].我试过将 down
转换为浮点数,但这也不起作用。
我得到的输出是 inf
.
的 10 倍
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)
return 都是 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;
}
你除以 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
开始。
我有以下一段代码,它不想将 up
声明为 float
,由 down
声明为 [=5] =].我试过将 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;
}
谁能帮我找出这段代码中的(巨大)错误? exp(x,n)
和 fac(n)
return 都是 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;
}
你除以 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
开始。