1.计算标准偏差C时的#QNAN0输出

时间:2015-03-23 13:03:38

标签: c nan

我已经编写了一个计算标准偏差的函数,结果始终是' 1.#QNAN0',我尝试过以不同的方式对其进行格式化,但我可以'找到解决方案。它昨天在另一台电脑上工作,我能做些什么吗?

void CalcStandardDeviation(int count, int* nums, double mean, FILE* output){
    int k;
    double std=0,a;
    for (k=0; k<count; k++){
        a=nums[k]-mean;
        std=std+(a*a);
    }
    std/=(count);
    std=sqrt(std);
    fprintf(output,"Standard deviation: %f\r\n",std);
    fprintf(output,"\r\n");
   }

1 个答案:

答案 0 :(得分:3)

NaN只能在您的代码中包含三个来源:

  • mean NaN
  • std/=(count);如果count 0 。{/ li>
  • std=sqrt(std); std此时此count为负数(在您的情况下似乎不可能)。

您应调试代码并观看mean和{{1}}值(或打印/导出)以找出原因。