我写了代码,但不是正常响应,而是开始输出:
-nan(ind)
我知道这意味着我在根下有一个负值,但我不明白如果一切都是平方的结果如何。告诉我出了什么问题以及如何修复代码?代码本身:
#include <iostream>
using namespace std;
template <typename T>
T Sigma_Array(const T* array, int count)
{
T sum = 0;
for (int i = 0; i < count; count++)
{
sum += array[i];
}
T average = sum / count;
T square_s = 1. / count;
for (int i = 0; i < count; count++)
{
T difference = array[i] - average;
square_s *= pow(difference, 2);
}
return sqrt(square_s);
}
int main()
{
float array_1[5] = {0.5, 1.5, 2.5, 3.5, 2.0};
cout << Sigma_Array(array_1, 5);
return 0;
}
让我们回到数学并做一些转换:
现在我们只需要遍历数组一次......让我们编写代码
double
:现在让我们将其扩展为模板
float
并double
使用该概念floating_point
:其实,仅此而已...
但是,还有另一种选择,如果您传递的正是一个数组,那么您可以引用该数组作为参数:
然后在传递数组时,您不需要传递它的大小......
PS哦,是的,你的代码......
如果您想要两次通过,请正确执行: