4个回答
展开全部
如果你说的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
#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
展开全部
#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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道你说的是不是等于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);
}
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
#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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询