改错题,计算S=1!+2!+…+n!。

 

你可以参考下面这种写法,思路更简单:

#include "stdio.h"
void main(){
	int n,i;
	long  su=0,sum=1;
	printf("请输入一个数:");
	scanf("%d",&n);
	
	for( i=1;i<=n;i++){
		sum*=i;//1~i的阶乘
		su+=sum;//各个阶乘的和
	}
	printf("从1到这个数的阶层和是:%ld",su);
	return 0;
}

 

int m=0; m没有初始化。

jiech函数里if(n==1)

 

 

#include <stdio.h>

int main() {
	unsigned long long sum=1,jiech=1;    
	int n;
	scanf("%d",&n);
	
	for(int i=2;i<=n;++i)
	{
	    jiech*=i;
	    sum+=jiech;
	}
	printf("%llu",sum);
	
	return 0;
}

 

main函数中:

for(k=1;k<=n;k++){
    //将n改成循环变量k即可
    //改前:m=m+jiech(n);
    //改后:m=m+jiech(k);
}