求数列1,3/2!,5/3!,7/4!,9/5!……前n项之和。执行不了,各位看看有什么问题

 

你的递归没有退出条件

这个告警实际上提示你了,你这个递归会无限递归。加个判断n=0然后直接return的

代码如下:

#include <stdio.h>
int main()
{
	int fac(int n);
	int p,n,i=1;
	float sum = 1.0;
	scanf("%d",&n);
	for (int k = 1; i <= n; k++)
	{
		i= 2*k -1;
		p = fac(k);
		sum = sum + 1.0*i/p;
	}
	printf("%f\n",sum);
	printf("袁康捷");
	return 0;
}
int fac(int n)
{
	if(n == 1)
		return n;
	else
		return n*fac(n-1);
}