#C语言 求1到5阶乘的和

s=1;和 t=t*n;哪错了?

#include <stdio.h>
fun()
{
int n,j;
float s=0.0,t=1.0;
for(n=1;n<=5;n++)
{

s=1;
for(j=1;j<=n;j++)

t=t*n;

s+=t;

}

printf("jiecheng=%d\n",s);
}
main()
{
fun();
}

printf("jiecheng=%d\n",s);
s的类型不是整型

你写的太啰嗦了,性能也不高。求阶乘和,阶乘不必每次从头请求,只要在上一次阶乘的结果上*i就行了。

我帮你写了一版,供你参考。如果有帮助,望采纳。

#include <stdio.h>

int main() {
    long sum = 0;
    long f = 1;
    for (int i = 1; i <= 5; i++) {
        f *= i;
        sum += f;
    }
    printf("%ld", sum);
    return 0;
}

t=t * n 那5的阶层就是5了,实际上应该是5 * 4* 3 * 2 * 1
所以n=n*(n-1)