我正在运行此代码来计算x[i][j] - y[j]的平方根,但这给了我胡说八道!

     bool X[I][J]={};   //nodes
     bool Y[J]={};      //medians

    double denominator=0;
    double miu=0;
    outFile<< "denominator= " << denominator << endl;
    for(i=0;i<I;i++)
        for(j=0;j<J;j++)
        {
            denominator+=sqrt(double (X[i][j]-Y[j]));
        }
    outFile<< "denominator= " << denominator << endl;


第一个outFile打印0,这是原始值,而第二个-1.#IND打印。

最佳答案

这可能意味着X[i][j] - Y[j]在某些时候为负,并且您从sqrt返回了NaN(不是数字)。

有关NaN的说明,请参见this wikipedia page

另外,XY是布尔数组,因此X[i][j] - Y[j]始终为1、0或-1,并且您实际上不需要sqrt。这是你想要的吗?

关于c++ - C++中的sqrt函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9459901/

10-11 22:08