这个难道不应该用两层循环吗 应该怎么改 改出具体代码并找出我的错误

第二个for循环计算阶乘那里,使用另外一个变量来存储阶乘的值即可。
修改如下:
#include <stdio.h>
int main(void){
int n;
scanf("%d",&n);
int ans=0;
int j,fact;
for(int i=1;i<=n;i++){
// 因为j是循环变量,用于遍历1到n之间的每个整数,用它来存储阶乘的值会产生错误
// 所以这里使用另外一个变量来存储当前整数的阶乘
for(j=1,fact=1;j<=i;j++){
fact=fact*j;
}
ans=ans+fact; // 累加阶乘fact的值到和ans中
}
printf("%d",ans);
return 0;
}
