int main()
{
int b = 1;
int i = 1;
int n = 0;
int ret = 0;
int j = 1;
printf("请输入n:");
scanf_s("%d\n", &n);
for (j = 1; j < n + 1; j++)
{
b = 1;
for (i = 1; i < j + 1; i++)
b = b*i;
ret = ret + b;
}
printf("n的阶乘为:%d\n", b);
printf("n的阶乘的和为:%d\n", ret );
return 0;
}
注意在外围的循环当中容易忽视b=1没有一行,那么在第二个循环就会保留上一次循环b的值,导致错误的连乘。