C语言编程 求自然数e=1+1/3+1/5+1/7+…+1/n,到最后一项绝对值小于10的-4次方为止!

e不是2.71828... e不是2.71828 展开
 我来答
百度网友53ab040ab
2010-12-23 · 超过16用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:41.3万
展开全部
如果你说的e不是2.71828的话,那么程序应该是如下:
#include <stdio.h>
#define ER 0.0001
//允许的误差

int main()
{
float e=0.0,et=0.0;
int n=1;
et=1.0;//et=1/(2n-1),即每次的增量
while(et>ER)
{
e+=et;
n++;
et=1.0/(2*n-1);

}
printf("e=%f",e);

printf("\npress any key to exit:\n");
getch();
return(0);
}

补充,递增的部分明显是1/(2n-1),而不是1/n。

同时附上自然对数e的程序:
#include "stdio.h"
void main()
{
int k,j;
long m;
double e=0;
for(k=0;;k++)
{
// k!
for(j=1,m=1;j<=k;j++)
{
m*=j;
}
e+=1.0/m;
if(1.0/m < 0.000001)
break;
}
printf("e=%lf",e);

printf("\npress any key to exit:\n");
getch();
}

e的公式:
n
e= ∑1/k!
k=o
呆啊呆啊呆x
2010-12-21 · TA获得超过156个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:103万
展开全部
#include <stdio.h>
#define Eps 0.0001

double e;
double K;

void main(void)
{
K=1.0;
e=0;
while ((1.0/K)>=Eps)
{
e+=(1.0/K);
K=K+1.00;
}
printf("%0.4lf",e);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luwrong110
2010-12-21 · 超过20用户采纳过TA的回答
知道答主
回答量:33
采纳率:100%
帮助的人:45.3万
展开全部
我不知道你说的是不是等于2.71828的称为自然数的常数。如果不是的话,程序应该如下:
#include <stdio.h>
void main()
{
int m=0;
double n=1;
double e=0;
while(1/n>0.0001)
{
e+=1/n;
n+=2;
m++;
}
printf("总共计算的次数=%d\n,最后一个n值=%f\n,e=%f\n",m,n,e);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xstpv56
2010-12-23 · TA获得超过838个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:297万
展开全部
#include<stdio.h>
#include<math.h>
main()
{
float sum=0;
int t=1,k=1;
do{
sum+=t/k;
t*=-1;
k+=2;
}while(fabs(sum)>=0.00001);

#inlcude "iostream.h" /*程序没有数据流的输入和输出不需要用这个*/
main
{

k=3,sun=1,t=1;; /*这个应进行数据类型的定义*/
while((1/k)>0.00001)
{
t=t*(-1);
sun=sun+t*(1/k);
k=k+2 /*漏了;*/
}

}

double sum=0.0; /*改为float型会更好以节省内存*/

for(int i=0;i++;(1.0/(2*i+1))>0.00001) /*改为for(int i=0;1.0/(2*i+1))>0.00001);i++)*/

sum += ((i%2==0)?1:-1) / (2*i+1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式