【发布时间】:2019-11-12 18:15:35
【问题描述】:
找到标准偏差后,我将 int 转换为浮点值,但我不确定我是否正确,因为它没有被打印出来。我想知道问题出在conversion 还是cout 本身。
float standardDev(int num[], int count, int average)
{
int i,standardDev, sum =0;
for(i=0;count-1;i++)
{
sum = sum + (num[i] - average)<<2;
standardDev = sqrt((1.0/count)*sum);
}
std::cout << std::fixed;
float x = (float)standardDev; //int into floating point
cout << "The standard deviation is " ;
std::cout<< x;
cout << ".";
return x;
}
目前此函数没有显示任何内容。在将standardDev转换为浮点数之前尝试显示它之后,似乎主要问题在于我正在尝试做的数学。
【问题讨论】:
-
有什么打印出来的吗?
-
能否请您提取并提供minimal reproducible example?另外,请使用tour 并阅读How to Ask。实际上,如果您尝试提取一个最小的示例,您可能会自己发现错误(这是相当明显的)。
-
float x = (float)standardDev;有点没用,因为到那时信息已经丢失了。 -
leftshift 2 (
<<2) 的原因是什么,你知道它是在添加之后执行的吗? -
首先让standardDeviation 成为一个浮点数怎么样?另请注意,您可以链接您的 cout。 cout
标签: c++