用c语言编程,求无理数e的近似值,e为下列数列的前n项之和,n由键盘输入,e=1+1/1!+1/2

用c语言编程,求无理数e的近似值,e为下列数列的前n项之和,n由键盘输入,e=1+1/1!+1/2!+1/3!+…+1/n!

#include <stdio.h>
unsigned long jc(int n);

void fun(int n)
{
    double e = 1.0;
    int i;
  
    for(i=1;i<=n;i++)
    {
        e = e+1.0/jc(i);
    }
    printf("%g\n",e);
}

unsigned long jc(int n)             
{
    if(n == 1)
        return 1;
    else
        return n*jc(n-1);
}

int main(  )
{
    int n;
    
    while(scanf("%d",&n)!=EOF)
    {
        fun(n);
    }
    return 0;
}

追答

有什么不明白的吗?

追问

追答

fun函数前个函数生命,加int method(int);

追问

这样么,还是不行

追答

既然要生命method已经定义,就应该放在使用它之前。
第一次使用它在fun函数里,所以应该在fun使用它之前啊。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-10
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
int main(void){
    double e,tmp;
    int i,n;
    printf("Input n(int)...\nn=");
    scanf("%d",&n);
    for(e=tmp=i=1;i<n;e+=(tmp/=i++));
    printf("e ≈ %f when n = %d.\n",e,n);
    return 0;
}

第2个回答  2015-04-10
#include<stdio.h>
float f(int n);
int main(){
int n;
scanf("%d",&n);
printf("%f",f(n));
return 0;
}
float f(int n){
float n = 1;
float a=1;
while(a>1e-7){
n+=a;
}
return n;
}追问

相似回答