用递归比较容易出错,你把这些程序都自己调试一下,选择一个你能理解和能够运行正确的吧!
#include
"stdio.h"
main()
{
float
f(int);
int
i,n;
float
sum=0;
printf("input
the
integer
n(n>0):\n");
scanf("%d",&n);
/*从键盘输入n*/
for(i=1;i<=n;i++)
sum=sum+f(i);
printf("%f\n",sum);
}
float
f(n)
{
int
i;
float
result=1;
for(i=1;i<=n;i++)
result=result*i;
return(result);
}
#include
void main()
{ float f(int);
int i,n;
float sum=0;
printf("input the integer n(n>0):\n");
scanf("%d",&n); /*从键盘输入n*/
for(i=1;i<=n;i++){
sum=sum+f(i);
}
printf("%e\n",sum);
}
float f(int n)
{ float result;
if(n==1||n==0) result=1;
else
result=result*f(n-1);
return(result);
}
用递归比较容易出错,你把这些程序都自己调试一下,选择一个你能理解和能够运行正确的吧!
#include "stdio.h"
main()
{
float f(int);
int i,n;
float sum=0;
printf("input the integer n(n>0):\n");
scanf("%d",&n); /*从键盘输入n*/
for(i=1;i<=n;i++)
sum=sum+f(i);
printf("%f\n",sum);
}
float f(n)
{
int i;
float result=1;
for(i=1;i<=n;i++)
result=result*i;
return(result);
}
还是不要用递归了,递归不太好!
#include
long jc(int a); /*计算阶乘的函数*/
int main()
{
int n; /*用户输入的值*/
printf(“Enter a number:/n”); /*提示用户输入*/
scanf(“%d”, &n);
/*调用函数并输出返回值*/
printf(“1!+2!+3!...n!=%ld/n”, jc(n));
return 0; /*表示main函数成功结束*/
} /*main函数结束*/
/*计算阶乘的函数*/
long jc(int a)
{
int sum;
for(i = a;i >= 1; i --){
if(i-1 = 0){
i -1 = 1;
}/*排除求1!时出现1*0的情况*/
sum += i * jc(i -1);/*将各数的阶乘累加起来*/
} /*结束for*/
return sum; /*将结果返回给main*/
}