我在 C 中遇到了这个错误,只是不知道出了什么问题。以下查询构成了我的代码的一个组成部分,用于在连续迭代中以指数方式递增值。这是我编写的公式:
我已经注释了代码中的错误。
#include <math.h>
#include <iostream>
int main()
{
double maxMeshS = 0;
double minMeshS = 0;
cout << "enter max mesh size (m): ";
cin >>maxMeshS;
cout <<"\nenter min mesh size (m): ";
cin >> minMeshS;
double raise = maxMeshS/minMeshS; //Values used for run maxMeshS = .5
double factor = 1/9; // minMeshS = .005
double b = pow(raise,factor);
cout << "b " << b << endl; // The error happens here when I use above values
// b comes out to be 1 which should be 1.668100 instead
double a = minMeshS/b;
cout << "a " << a << endl;
int x;
cout << "enter x " ;
cin >> x;
double queryCube = a*pow(b,x);
cout << queryCube << endl;
return(0);
}
但是,当我使用除法计算值maxMeshS/minMeshS
即 100 和 1/9 即 .11111 时,我获得了正确的值b = pow(100, .1111) = 1.66800
。为什么会这样?