我写了一个代码来计算这个公式 ((2*x+1)/(2*x-1))^x,随着 x 的增加,这个表达式越来越接近 e=2.7182818。当这个表达式和 e 之间的差异变得更小时比 .000001 然后它将退出循环并显示 x 是什么。问题是首先它会计算错误,然后当我进行一些调整时,循环开始永远持续下去。感谢您的帮助。
#include <stdio.h>
#include <math.h>
int main(){
int x;
float z,y;
printf("X's value Absolute Difference\n");
x=1;
y=(2*x+1)/(2*x-1);
z=fabsf(expf(1)-pow(y,x));
for(x=2;z>0.000001;++x){
y=(2*x+1)/(2*x-1);
z=fabsf(expf(1)-pow(y,x));
printf("%d %.7f\n",x,z);
}
printf("The number in which is closest to e is %d\n",x);
printf("%.7f %.7f\n",expf(1),pow(y,x));
return(0);
}