PTA请教大佬改一下程序 求函数的值

img

img

img

大佬们帮我看看哪里错了?我应该改哪里啊?

#include <stdio.h>
#include <math.h>

int factor(int n)
{
    if (n == 0)
        return 1;
    int r = 1;
    for (int i = 2; i <= n; i++)
        r *= i;
    return r;
}

float f(float x, int n)
{
    if (n == 0)
        return x;
    int m = 2 * n + 1;
    float r = pow(x, m) / (m * factor(n));
    return n % 2 != 0 ? -r : r;
}

float s(float x)
{
    float r = 0.0f;
    for (int i = 0; i < 10; i++)
        r += f(x, i);
    return r;
}

int main()
{
    float x;
    scanf("%f", &x);
    printf("%.2f\n", s(x));
    return 0;
}