C语言 将浮点数除以 int 并存储为浮点数 - 除以零



我有以下一段代码,它不想设计up,它被声明为float,由down,声明为int。我试过将down铸造到浮子上,但这也不起作用。我得到的输出是 10 倍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("%fn", y);
        x += 0.1;
    }
    return 0;
}

谁能帮我找到这段代码中的(巨大)错误?exp(x,n)fac(n) 都返回正确的值类型以 updown

这是两个功能expfac

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开始。

最新更新