Ⅰ c语言编程求自然数e
只能自己手动用具体数来表示
比如
const
double
e=2.71828;
或者
#define
e
2.71828
huliyuputao
是正解
Ⅱ C语言用递归方法求E
/* e=1+1/1!+1/2!+1/3!+…�=2.71828 */
#include <stdio.h>
#include <math.h>unsigned long factorial(unsigned short n) {
if(n <= 1) return 1;
return n*factorial(n - 1);
}double e(unsigned short n) {
if(n <= 1) return 2.0;
return e(n - 1) + 1.0/factorial(n);
}int main() {
printf("e ≈ %lf\n\n",e(30));
return 0;
}
Ⅲ C语言编程计算e
楼主你好
具体代码如下:
#include<stdio.h>
int main()
{
double e=1,index;
int i=1,j=1;
do{
i*=j;
index=1.0/i;
e+=index;
j++;
}while(index>=1E-6);
printf("e=%.5f\n",e);
return 0;
}
希望能帮助你哈
Ⅳ 用c语言怎样求自然常数e
如果要求足够精确的话,那你就要突破计算机位数的限制,通过链表来存储你的计算结果
Ⅳ c语言求e 两种方法
// 我先提供一种/* e = 1 + 1/1! + 1/2! + 1/3!+........1/n!+.... ... */
#include <math.h>
#include <stdio.h>void main() {
double e = 1.0,delta;
int factorial = 1,i = 1;
do {
delta = 1.0/factorial;
e = e + delta;
i++;
factorial = factorial*i;
} while(fabs(delta) > 1.0e-6);
printf("e = %lf\n",e);
}
Ⅵ C语言求e的值
printf("%lf\n",e);
改成
printf("%.100lf\n",e);
因为double精度只能显示10多位,后面是0.
一定要精度换数组保存.
Ⅶ C语言编一个计算e的值的程序
//double??
for(i=1.000000;n>=EPSILON;++i)
{
z=z*i;//阶乘
n=m/z;//求反
t=t+n;//求和
}
你是想表达这个意思吧
doubles,e,n,z,m,t,i;//1.不需要全部使用double的
//double是处理小数位数多的时候进行使用的
//double和float都是一个相似值
t=0.000000;
m=1.000000;
s=1.000000;
z=1.000000;
for(i=1.000000;n>=EPSILON;++i)//n的初始化呢?n什么时候才能够>=EPSILON
//所以你这里应该使用dowhile的结构,而不是for
{
z=z*i;//这里的问题,就是我前面标示的,
//longlong会更精确一点,而1.0000001*1.0000002的结果会对下面有影响的
n=m/z;//m始终没有改变过,没有必要使用一个变量:)
//n=double(1)/z;
t=t+n;//t+=n;个人习惯
}
e=t+1.000000;
printf("e=%.6lf",e);
return0;
Ⅷ c语言中%e的用法
因为a是int类型的,将a的类型改成float就会正常显示了。至于为什么显示这个奇怪的数字,简单讲是因为12345678在内存中的2进制保存形式与这个奇怪的数字的在内存中的2进制保存形式一样,但它们有不同的解释。比如:11111111(2进制),如果作为整数解释,它是2^8-1=255。但如果作为浮点数解释,它是尾数*2^阶码。假设尾数和阶码都是4位,同时为了与真正的浮点数格式的国际标准一致,同时假设此浮点数的2进制存储形式与它要表示的真正的浮点数相比,尾数前面省略了1.,则尾数部分是2^4-1=15,而真正的尾数应该是1.15,同时,阶码是2^4-1=15。所以,按我们的假设,在内存中的11111111(2进制),如果作为浮点数解释,就是:1.15*2^15,它与255完全不同,但内存中的2进制表示与255完全一样。这与你之所以看到那个奇怪的数的原理是一致的,但浮点数的国际标准要比这复杂得多。
Ⅸ c语言的简单问题,计算e
求阶乘的递归函数的出口设置不对
int jc(int n){
if (n==1)
return 1;
return jc(n-1)*n;
}
而main 函数里的for 循环
x+=1/(double) jc(j); //强制类型转换成double
Ⅹ C语言,据以下公式求e的值。要求用两种方法计算:
#include <stdio.h>
int main()
{
int i;
double sum,t;
for(t=i=1,sum=1;i<50;++i)
{
t*=i;
sum+=1.0/t;
}
printf("%lf ",sum);
return 0;
}