C语言编程序,求e的近似值e≈1+1/2!+1/3!+…+1/n! 20
(1)精确到小数点后200位,用户输入n,就运算到1/n!(2)然后用户之后输入100,输出小数点后100的数字...
(1)精确到小数点后200位,用户输入n,就运算到1/n!(2)然后用户之后输入100,输出小数点后100的数字
展开
展开全部
分析:有两种情况
(1)计算前n项
源程序如下:
#include<stdio.h>
int
main()
{
double
item=1,sum=1;
int
n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
item*=1.0/i;
sum+=item;
}
printf("The
sum
is
%lf\n",sum);
return
0;
}
(2)计算各项直到最后一项小于10^(-4)
源程序如下:
#include<stdio.h>
#include<math.h>
int
main()
{
double
item=1,sum=1,n=1;
do
{
item*=1.0/n;
sum+=item;
n++;
}while(fabs(item)>=1e-4);
printf("The
sum
is
%lf\n",sum);
return
0;
}
(1)计算前n项
源程序如下:
#include<stdio.h>
int
main()
{
double
item=1,sum=1;
int
n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
item*=1.0/i;
sum+=item;
}
printf("The
sum
is
%lf\n",sum);
return
0;
}
(2)计算各项直到最后一项小于10^(-4)
源程序如下:
#include<stdio.h>
#include<math.h>
int
main()
{
double
item=1,sum=1,n=1;
do
{
item*=1.0/n;
sum+=item;
n++;
}while(fabs(item)>=1e-4);
printf("The
sum
is
%lf\n",sum);
return
0;
}
展开全部
#include <math.h>
main()
{
int n,i,b;
long a=1;
double e,x;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a*=i;
e+=1.0/a;
}
printf("e=%lf",e);
x=e-(int)e;
printf(" input bit b(1~14):");/*这边给您输出最多14位的小数*/
scanf("%d",&b);
printf("is %ld",(int)(x*pow(10,b)));
}
精确小数的 可以加
do
{
}while(x<0.0000000001);/*数字自己定*/
的代码
希望对你有所帮助!
main()
{
int n,i,b;
long a=1;
double e,x;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a*=i;
e+=1.0/a;
}
printf("e=%lf",e);
x=e-(int)e;
printf(" input bit b(1~14):");/*这边给您输出最多14位的小数*/
scanf("%d",&b);
printf("is %ld",(int)(x*pow(10,b)));
}
精确小数的 可以加
do
{
}while(x<0.0000000001);/*数字自己定*/
的代码
希望对你有所帮助!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
<math.h>
main()
{
int
n,i,b;
long
a=1;
double
e,x;
printf("Input
n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a*=i;
e+=1.0/a;
}
printf("e=%lf",e);
x=e-(int)e;
printf("
input
bit
b(1~14):");/*这边给您输出最多14位的小数*/
scanf("%d",&b);
printf("is
%ld",(int)(x*pow(10,b)));
}
精确小数的
可以加
do
{
}while(x<0.0000000001);/*数字自己定*/
的代码
希望对你有所帮助!
<math.h>
main()
{
int
n,i,b;
long
a=1;
double
e,x;
printf("Input
n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a*=i;
e+=1.0/a;
}
printf("e=%lf",e);
x=e-(int)e;
printf("
input
bit
b(1~14):");/*这边给您输出最多14位的小数*/
scanf("%d",&b);
printf("is
%ld",(int)(x*pow(10,b)));
}
精确小数的
可以加
do
{
}while(x<0.0000000001);/*数字自己定*/
的代码
希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序没多大难度 但是精确小数位数有点不好办
追问
那精确到200位 会吗 会的话也可以给分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <math.h>
main()
{
int n,i,b;
long a=1;
double e,x;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a*=i;
e+=1.0/a;
}
printf("e=%lf",e);
x=e-(int)e;
printf(" input bit b(1~14):");/*这边给您输出最多14位的小数*/
scanf("%d",&b);
printf("is %ld",(int)(x*pow(10,b)));
}
精确小数的 可以加
do
{
}while(x<0.0000000001);/*数字自己定*/
的代码
希望对你有所帮助!
main()
{
int n,i,b;
long a=1;
double e,x;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a*=i;
e+=1.0/a;
}
printf("e=%lf",e);
x=e-(int)e;
printf(" input bit b(1~14):");/*这边给您输出最多14位的小数*/
scanf("%d",&b);
printf("is %ld",(int)(x*pow(10,b)));
}
精确小数的 可以加
do
{
}while(x<0.0000000001);/*数字自己定*/
的代码
希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询