C++功能不起作用
C++ function wont work
我需要计算读取的 15 个数字的方差和标准偏差。我不确定为什么,但该功能不会执行,控制台只是闪烁。有人可以解释一下问题是什么,谢谢。
#include <iostream>
using namespace std;
void stats(int array[], double& var, double& sd);
int main ()
{
int array[15];
double var = 0, sd = 0;
cout << "Please enter 15 numbers to calculate var and SDn";
for(int i = 0; i < 15; i++)
{
cout << "Enter number: ";
cin >> array[i];
}
stats(array,var,sd);
cout << "Numbers entered are: ";
for(int i = 0; i < 15; i++)
{
cout << array[i] << " ";
}
cout << "Variance is: " << var << endl;
cout << "Standard deviation is: " << sd << endl;
}
函数定义
void stats(int array[],double& var, double& sd)
{
int sum = 0;
double sum2 = 0;
double mean = 0;
for(int i = 0; i < 15; i++)
{sum = sum + array[i];
}
mean = sum/15;
for(int i = 0; i < 15;)
{sum2 = pow((array[i]-mean),2) + sum2;
}
var = sum2/15;
sd = pow(var,0.5);}
for(int i = 0; i < 15;)
{sum2 = pow((array[i]-mean),2) + sum2;
}
该循环永远不会递增i
因此它会永远运行。你在那里错过了一个i++
,所以它应该像
for(int i = 0; i < 15; i++)
一些可能有助于改善您的风格的备注:
- 如果你想摆脱硬编码的15,使用向量而不是数组,并
push_back
来自cin
- 即使对于整数来说它没有任何区别,也比
i++
更好++i
(对于迭代器来说,它可能在性能方面有所不同) - 您可以使用
std::accumulate
对向量的所有元素求和 -
pow
将某些东西提高到 2 的幂效率略低,最好将数字乘以自身 -
main
应返回 0
相关文章:
- 为什么我的打印功能不起作用?链表
- Cuda 基本程序 (将值写入矩阵和 std:cout 不起作用) ;主功能不启动
- 我做错了什么?GetDiskFreeSpaceExA的功能根本不起作用
- 虚拟功能不起作用
- C++插入排序错误功能不起作用
- 使用链表.为什么我的插入功能不起作用?
- 功能指针不起作用(C )
- 为什么功能对我不起作用?C
- C 所有质数功能不起作用
- 朋友功能不起作用(语法错误)
- Winpcap:暂停/停止嗅探pcap_breakloop功能不起作用
- 我的模板功能具有通用引用不起作用
- C 类是功能不起作用的参数
- 现在将功能从主型到原型不起作用
- 排序功能不起作用
- TIM6,基本时间生成功能不起作用
- 功能调用不起作用,但控制台仍允许输入
- 二进制树级别明智的打印功能不起作用
- glutkeyboardfunc呼叫功能不起作用
- 为什么COUT在朋友函数中不起作用,该功能超载了操作员&lt;&lt;这是一个iStream运算符