C语言编程,求1到10的阶乘的和。

应该是对的啊,修改了好多次,但运行出来总是不对,不知道是哪里的问题😱

img

img

求一个数的阶乘的函数应该是这么写的:

int fact(int n)
{
    int ans = 1;
    for(int i=1; i<=n; i++)
    {
        ans *= i;
    }
    return ans;
}

所以你要把int s = 1放在for循环里面,不然就加多了。1到10的阶乘之和应该是:4037913


#include <stdio.h>

int main()
{
    int sum = 0;
    for(int i=1; i<=10; i++)
    {
        int s = 1;
        for(int j=1; j<=i; j++)
        {
            s *= j;
        }
        sum += s;
    }
    printf("%d\n", sum);
    return 0;
}

1、void main 改为 int main
2、不用内部的嵌套循环
3、对于C语言,for 循环里面的 i 需要在外部先声明

#include<stdio.h>
int main()
{
 int s = 1;
 int sum = 0;
 int i = 1;
 for (i = 1; i <= 10; i++)
 {
  s *= i;
  sum  += s;
 }
 printf("%d\n", sum);
 return 0;
}