定义函数func(n)计算1*2*3...*n,函数返回值类型是double

2024年12月02日 17:37
有3个网友回答
网友(1):

#include "stdio.h"
double func(int n){
double t;
for(t=1;n>1;t*=n--);
return t;
}
int main(int argv,char *argc[]){
int i;
double s,t;
for(s=i=1;(t=1/func(i))>=1.0E-6;s+=t,i++);
printf("The result are %g\n",s);
return 0;
}

运行结果:

网友(2):

试试下面这个

#include
void main(void)
{
double func(int);
double s=0,term;
int i;
for(i=0,term=1;;i++)
{
term=1.0/func(i);
if(term<10e-6)break;
s+=term;
}
printf("s=%lf\n",s);
}

/********************函数部分********************/
double func(int i)
{
double nj=1;
while(i>1)
nj*=(double)i--;
return nj;
}

网友(3):

double func(int n){

double result = 1;

for(int i = 2 ; i <= n ; i++){
int ib = 1;

for(int j = 1 ; j <= i ; j++){ib = ib*j}

result += 1/ib;

}
return result;

}