我试图找到权力x的e.请说明我目前的实施可能出现的问题,而不仅仅是建议新的/有效的解决方案(我可以在网上找到很多).似乎有逻辑或运行时错误,调试它没有显示任何内容.提前致谢!
已包含cmath库,程序编译精细..运行时停止
double find_e_power_x(int x){
int i = 1, j = 1, count = 1, accuracy = 15;
double xd = static_cast<double>(x); //pow takes double args
double jd = static_cast<double>(j);
double epx = 1.0;
while ( count < accuracy ){
while ( ++i && ++j) {
epx += ( pow(xd,jd) / fact(i) ); //static_cast
count++;
}
}
return epx;
}
Run Code Online (Sandbox Code Playgroud)
回应评论(指出我无限的内循环),
编辑:
while ( count < accuracy ){
epx += ( pow(xd,jd) / fact(i) ); //static_cast
count++;
i++;
j++;
} …Run Code Online (Sandbox Code Playgroud) 这些代码行显示如下错误:
int e = 5, * ePtr = &e;
void * vPtr = ePtr;
cout << *vPtr;
Run Code Online (Sandbox Code Playgroud)
语法错误:
`void*'不是指向对象的类型
我知道:
但如果我们不能做#2点,除了语法正确之外,点#1的用途是什么?我想打印5(即e这里)使用vPtr..可能吗?
这很好用:
int e = 5, * ePtr = &e;
void * vPtr = ePtr; //specific to generic Ok!
double * dPtr = (double *)vPtr; //to let compiler know stoarge size
cout << *dPtr; //indirectly it is vPtr i.e. a void ptr, can be deref only if cast
Run Code Online (Sandbox Code Playgroud)